Faculdade de Engenharia da Universidade do Porto
Licenciatura em Engenharia Electrotécnica e de Computadores
Algoritmos e Estruturas de Dados, 1999/2000

Sumários

Aula#

Data

Sumário

1

21-02-2000

Apresentação da ficha da disciplina. Introdução à programação estruturada em C++.

2

23-02-2000

Entrada e saída de dados; instruções de controlo do fluxo do programa.

3

28-02-2000

Tipos de dados básicos; operadores e expressões.

4

02-03-2000

Funções; funções inline, argumentos por referência; argumentos por omisão; sobrecarga de funções; padrões (templates) de funções.

5

08-03-2000

Arrays.

6

13-03-2000

Apontadores. Strings. Alocação e libertação dinâmica de memória com new e delete.

7

15-03-2000

Análise de algoritmos: noção de complexidade temporal e espacial; notação de O grande. Descrição, análise e codificação de algoritmos de pesquisa de arrays: pesquisa sequencial e pesquisa binária.

8

20-03-2000

Descrição, análise e codificação de algoritmos de ordenação de arrays: ordenação por inserção e ordenação por partição.

9

22-03-2000

Estruturas, uniões, enumerações e typedef.

10

27-03-2000

Não houve aula por ausência do docente.

11

29-03-2000

Introdução à programação orientada aos objectos em C++; conceito de classe e conceito de objecto; membros-função de classes; restrições de acesso.

12

03-04-2000

Construtores e destrutores; objectos e membros constantes; inicializadores de membros; composição de classes; classes e funções friend; apontador this; criação e destruição de objectos com new e delete; membros estáticos; introdução à sobrecarga de operadores.

13

05-04-2000

Padrões (templates) de classes; introdução ao tratamento de excepções. Listas Lineares: o tipo de dados abstracto; representação em array;

14

10-04-2000

Listas Lineares: representação ligada em cadeia; listas circulares e listas duplamente ligadas

15

12-04-2000

Listas Lineares: representação por endereçamento indirecto

16

17-04-2000

Listas Lineares: representação por simulação de apontadores

17

19-04-2000

Aplicação de listas lineares. Pilhas: tipo de dados abstracto; implementação baseada em array; implementação baseada em cadeia; exemplo de aplicação.

18

03-05-2000

Filas: tipo de dados abstracto; implementação baseada em array; implementação baseada em cadeia; exemplo de aplicação.

19

15-05-2000

Hashing: dicionários, tabelas de dispersão ("hash"), implementação em C++ da classe HashTable; aplicação à compressão de ficheiros segundo o algoritmo LZW.

20

17-05-2000

Árvores: definições; árvores binárias; representação de árvores baseada em fórmula; representação ligada; percorrer a árvore em profundidade (pré-order, em-ordem e pós-ordem) e em largura. Tipo de dados abstracto BinaryTree.

21

22-05-2000

Classe C++ BinaryTree para implementar uma árvore binária; percorrer a árvore em profundidade e em largura. Aplicação de árvores binárias: rede de distribuição

22

24-05-2000

Filas de prioridade: tipo de dados abstracto MaxPriorityQueue; utilização de Heaps; representação em array de Heaps e algoritmos associados; implementação em C++ da classe MaxHeap; Aplicação à ordenação de arrays (HeapSort).

23

29-05-2000

Grafos: definições e propriedades; Tipo de dados abstracto Grafo e Digrafo; representação de grafos em matriz das adjacências, lista empacotada de adjacências e cadeia de adjacências; representação de redes e matriz de custos; implementação das classes C++ para grafos, digrados com e sem pesos usando a matriz das adjacências e usando a lista encadeada de adjacências.

24

31-05-2000

Grafos: iteradores para listas de adjacências; algoritmo de procura em largura (BFS) e em profundidade (DFS).

25

05-06-2000

Grafos: implementação de BFS e DFS em C++; exemplos de aplicação (caminhos, etiquetar componentes).

26

07-06-2000

Resolução de dois Exames tipo.


[Página da disciplina] [J. Lopes Home page]
João Correia Lopes (jlopes AT fe.up.pt).
Last modified: 08-06-2000 11:42:32