INF 2 01 - Estrutura de Dados e Algoritmos

Regente

Professor Doutor Paulo Alexandre Bressan

Objectivos

A disciplina deve capacitar o aluno a analisar problemas e projectar, implementar e validar soluções para os mesmos, através do uso de metodologias, técnicas e ferramentas de programação que envolvam as estruturas de dados e os métodos de classificação e pesquisa mais adequados.

Sinopse

Introdução à linguagem C++: conceitos básicos (váriáveis, tipos, constantes e entrada/saída), estruturas de controlo (condições e repetições), ponteiros, funções e passagem de parâmetro, alocação dinâmica de memória e arquivos. Estruturas de dados: homogêneas (vectores, matrizes e cadeias de caracteres), heterogêneas (registros e vectores de registros). Recursividade e algoritmos de busca e ordenação: funções recursivas, ordenação por seleção, ordenação por bolha, ordenação por inserção e quick-sort. Estruturas de dados ligadas: listas ligadas simplesmente, operações em lista (remoção, inserção e busca), implementação de listas com alocação estática e dinâmica, listas circulares, listas ligadas duplamente, pilhas e filas. Árvores: conceitos, terminologias, árvores binárias, árvores-B e grafos. Hashing: tratamentos de colisões com endereço aberto e por endereçamento.