Conteúdos da cadeira

Algoritmos e Estruturas de Dados

Análise de complexidade, ordenação, listas, árvores, dispersão, heaps e grafos em C++.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Algoritmos e Estruturas de Dados é a cadeira onde aprendes a escolher: perante um problema, que estrutura guarda os dados e que algoritmo os transforma, e quanto custa essa escolha quando a entrada cresce. Vens de Programação, onde o C++ e as classes já são familiares, e de Funções, onde viste a primeira análise de custos. Aqui essas ideias tornam-se método: tipos abstratos de dados implementados por ti, complexidade provada e programas avaliados automaticamente no Mooshak.

Como está organizado

Começa por Complexidade e invariantes, que fixa a notação assintótica para tempo e espaço e mostra como provar que um ciclo faz o que promete. Depois, Pesquisa e ordenação em arrays compara a pesquisa sequencial com a binária e segue o quicksort e o mergesort passo a passo no mesmo vetor.

A segunda parte constrói estruturas: Listas, pilhas e filas com nós e apontadores, Árvores binárias com as três travessias, e Árvores de pesquisa equilibradas onde as rotações mantêm a altura logarítmica. A terceira parte organiza o acesso por chave e por prioridade: Tabelas de dispersão com colisões resolvidas à vista, e Filas de prioridade e heaps com o heapsort. Fecha com Grafos e pesquisa, onde a pesquisa em largura e em profundidade decide ciclos, conetividade e ordens topológicas.

Como estudar

Lê cada página com o compilador aberto e implementa a estrutura antes de veres a solução: lista ligada, árvore de pesquisa, tabela de dispersão e heap cabem todos em programas curtos. Em AED, perceber o desenho não chega; o hábito que conta pontos é seguir o estado dos dados à mão, com papel, numa entrada pequena, e só depois confirmar com o programa. Resolve a seguir os exercícios de cada ficha e submete no Mooshak, porque o avaliador automático testa entradas que tu não lembraste, incluindo a vazia e a de um só elemento.

Avaliação

A forma de avaliação varia de ano para ano. Consulta a ficha da unidade curricular no SIGARRA e a página da disciplina no Moodle para saberes os pesos dos testes, do trabalho laboratorial e do exame, e as regras de frequência e de melhoria.

Fontes e âmbito

Estas páginas seguem o âmbito da unidade curricular de Algoritmos e Estruturas de Dados (L.EIC011) do 2.º ano, 1.º semestre da LEIC, ocorrência de 2025/26: complexidade temporal e espacial, correção de algoritmos, pesquisa e ordenação em arrays, listas, pilhas e filas, árvores binárias e equilibradas, tabelas de dispersão, filas de prioridade e heaps, e algoritmos básicos em grafos. As ferramentas de trabalho são o compilador GCC com C++17 e o Mooshak para avaliação automática.

Material oficial da FEUP:

  • Ficha da unidade curricular de Algoritmos e Estruturas de Dados, ocorrência de 2025/26, com objetivos, programa, bibliografia e avaliação (consultada em setembro de 2026): SIGARRA.
Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.