Algoritmos e Estruturas de Dados
Modo escuroModo escuroModo escuroPágina inicial

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: