⚡ Cap 19: Estruturas de Dados Dinâmicas (Listas, Pilhas, Filas e BST)
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Listas Simplesmente Encadeadas
graph LR
H["Head"] --> N1["[10 | *prox]"]
N1 --> N2["[20 | *prox]"]
N2 --> N3["[30 | NULL]"]
style H fill:#7c3aed,stroke:#c084fc,color:#ffffff
style N1 fill:#0284c7,stroke:#38bdf8,color:#ffffff
style N2 fill:#0284c7,stroke:#38bdf8,color:#ffffff
style N3 fill:#0284c7,stroke:#38bdf8,color:#ffffff
- Cada nó é alocado individualmente no Heap.
- Inserção na cabeça em tempo constante $O(1)$.
🥞 Slide 2: Pilhas (LIFO) vs Filas (FIFO)
- Pilha (Stack):
push/popocorrem unicamente no Topo. - Fila (Queue):
enqueueno Fim edequeueno Início.
🌳 Slide 3: Árvore Binária de Busca (BST)
graph TD
R["Raiz (50)"] --> E["Filho Esq (30)"]
R --> D["Filho Dir (70)"]
style R fill:#1e3a8a,stroke:#3b82f6,color:#ffffff
style E fill:#065f46,stroke:#10b981,color:#ffffff
style D fill:#78350f,stroke:#f59e0b,color:#ffffff
- Subárvore Esquerda $<$ Raiz $<$ Subárvore Direita.
- Percurso In-Order: Visita os dados em ordem crescente perfeita!
🛡️ Slide 4: Desalocação Segura de Memória
void liberarLista(No *head) {
while (head != NULL) {
No *temp = head->prox; // Salva o próximo
free(head); // Libera o atual
head = temp;
}
}
- Salve o próximo endereço antes de executar
free().
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Teoria | Ver Slides | Fazer Quiz | Ver Exemplos | Praticar Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim