Aula 08 - Pilhas (Stacks): Princípio LIFO e Aplicações 🧱
Estruturas de Dados e Algoritmos
Agenda da Sessão 📅
- Fundamentação Teórica & Problema
- Invariância da Estrutura & Complexidade Big-O
- Alocação Dinâmica na Heap & Ponteiros
- Implementação Prática em Linguagem C
- Análise de Casos de Borda & Debug
1. Visão Geral & Importância 🎯
- Como organizar dados em memória de forma eficiente?
- Diferença de performance entre \(O(1)\), \(O(\log n)\) e \(O(n)\).
- Gestão de memória rigorosa: alocação e desalocação consciente.
2. Princípios Algorítmicos 🧠
- Princípio LIFO: Diretriz central.
- Push e Pop O(1): Representação em memória.
- Stack Overflow: Operação assintótica.
3. Código Exemplo em C 💻
// Pilha Dinâmica LIFO
typedef struct {
int* itens;
int topo;
int capacidade;
} Pilha;
void pilha_push(Pilha* p, int valor) {
if (p->topo == p->capacidade - 1) return; // Cheia
p->itens[++p->topo] = valor;
}
int pilha_pop(Pilha*
4. Atividades da Aula 🚀