Algoritmos e Estrutura de Dados I

Ementa

Registros, uniões e enumerações. Ponteiros e alocação dinâmica de memória. Recursividade. Tipo abstrato de dados. Noções de complexidade computacional. Busca sequencial e binária. Implementações estática e dinâmica dos tipos abstratos de dados lista, fila, fila circular e pilha. Lista duplamente ligada. Tabela de endereçamento aberto. Tabela hash. Hashing perfeito. Conceitos sobre árvores: grau de um nó, nível, altura, profundidade, árvore completa/não-completa e balanceamento. Árvores não-balanceadas: tipo abstrato de dados árvore binária de busca. Árvores balanceadas: tipos abstratos de dados árvore AVL, Rubro-Negra e B.

Objetivos

Adquirir conhecimentos teóricos e práticos no campo dos algoritmos e das estruturas de dados de alta/mediana complexidade para assim utilizar uma linguagem de programação de alto nível para soluções de problemas computacionais reais e cotidianos do mercado de trabalho, promovendo a eficiência nas soluções computacionais.