Trilha 04

🗂️ Estruturas de dados

Escolher a estrutura errada transforma um algoritmo elegante em um gargalo — e nenhuma otimização depois recupera isso. Esta trilha vai fundo em cada uma das estruturas fundamentais: como elas organizam a memória, quais operações ficam baratas por causa dessa organização, e qual preço se paga em troca. De arrays e listas ligadas até hash tables, árvores de busca balanceadas e heaps — sempre implementando do zero, para ver por dentro o que a biblioteca padrão esconde.

4.1

Arrays e listas ligadas

Memória contígua vs ponteiros. Por que inserir no início custa O(n) num array e O(1) numa lista — e por que, mesmo assim, o array quase sempre ganha na prática.

Disponível
4.2

Pilhas, filas e deques

LIFO, FIFO e as duas pontas. O buffer circular que entrega O(1) sem mover um byte, e a fila construída com duas pilhas.

Disponível
4.3

Hash tables por dentro

Funções hash, colisões, encadeamento vs endereçamento aberto e o fator de carga — a variável que decide se o O(1) se sustenta ou desmorona.

Disponível
4.4

Árvores binárias de busca

Busca binária que aceita inserções. Travessias, remoção com sucessor e o que a BST tem que a hash table não tem: ordem.

Disponível
4.5

Árvores balanceadas

Rotações, AVL, rubro-negras e B-trees. Como garantir O(log n) no pior caso — e por que todo índice de banco de dados é uma árvore.

Disponível
4.6

Heaps e filas de prioridade

Uma árvore binária completa guardada num array, sem um único ponteiro. Sift up, sift down, heapsort e o coração do Dijkstra.

Disponível
Vindo da trilha 03? A lição Estruturas de dados fundamentais apresentou pilha, fila e hash table em panorama. Esta trilha é o aprofundamento: aqui cada estrutura é implementada e medida, e entram as árvores de busca, o balanceamento e os heaps.