Exemplos e exercícios de algoritmos e estruturas de dados em Python
Seja bem vindo à página de documentação e conteúdos complementares ao repositório algoritmos_e_estruturas_de_dados. O repositório tem como objetivo reunir materiais de estudo, referências e código fonte para apoiar o aprendizado de algoritmos e estruturas de dados. A proposta é construir um corpo de conhecimento colaborativo entre professores e estudantes do curso de Sistemas de Informação do Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais campus Salinas.
A iniciativa para a criação do repositório partiu da necessidade de organizar e disponibilizar exemplos simples e didáticos de implementação de classes, snippets, etc., para auxiliar o trabalho conjunto de professores e estudantes envolvidos em pesquisa sobre aprendizagem colaborativa da temática de algoritmos e estruturas de dados.
Inicialmente, todos os exemplos são desenvolvidos em Python para facilitar o aprendizado, uma vez que esta é uma linguagem de programação de uso geral, conhecida pela simplicidade e filosofia de otimizar a leitura de códigos e estimular a produtividade de quem os cria. Futuramente, exceções poderão ser abertas diante de necessidades específicas.
É importante ressaltar que os trechos de software disponíveis no nosso repositório priorizam a clareza de leitura e entendimento, com o objetivo principal de apoiar o processo de ensino e aprendizagem. Por isso, em algumas situações, a legibilidade pode ter sido priorizada em detrimento da eficiência ou do uso de comentários, que em outros contextos seriam considerados exagerados.
Conteúdo
Atualmente o repositório contém exemplos de implementação das seguintes estruturas de dados:
- Árvore AVL
- Árvore binária de busca (BST)
- Fila
- Fila (com nós encadeados)
- Fila circular
- Fila circular (com nós encadeados)
- Fila dupla
- Fila dupla (com nós encadeados)
- Grafo (implementação naive)
- Grafo (com lista de adjacência)
- Lista (com nós encadeados)
- Lista (com nós com encadeamento duplo)
- Pilha
- Pilha (com nós encadeados)
- Tabela hash
- Tabela hash (com nós encadeados)
Os seguintes exemplos de uso:
- Ordenação de processamento em batch (first-in, first-out)
- Ordenação de processamento em batch (Shortest-job-first)
Planos futuros
Pretendemos incluir os seguintes conteúdos:
- Algoritmos de ordenação
- Algoritmos de transposição de árvores e grafos
- Algoritmos de busca
- Exemplos comuns de uso
Principais contribuidores do projeto
Contribuições, comentários e sugestões
Sinta-se livre para contrbiuir com os nossos repositórios: