Estruturas de Dados

TL;DR

Galho de Fundamentos sobre as formas de organizar e armazenar dados — e os trade-offs de tempo, espaço e ordem que cada uma impõe. Interview-critical. Cada estrutura traz uma comparação profunda de implementação em Java, TypeScript, Python e Go, mostrando como as particularidades de cada linguagem moldam a estrutura.

Sobre este galho

Cobre as estruturas de dados de ponta a ponta: dos blocos fundamentais (arrays, listas, pilhas, filas, tabelas hash) às hierárquicas e relacionais (árvores, heaps, tries, árvores B, grafos) e às especializadas (LRU, Bloom filter, skip list, union-find). O eixo é sempre trade-off: qual estrutura para qual padrão de acesso, e por quê.

Cada nota traz uma seção “Implementações comparadas: Java · TypeScript · Python · Go” — não só o código, mas como cada stack pensa a estrutura e como as particularidades da linguagem (a JVM e o Collections Framework; a V8 e o array-como-objeto; o CPython e o dict compacto; os slices e a semântica de valor do Go) influenciam a implementação e o desempenho.

Audiência: dev senior em preparação para entrevista internacional. Cada nota tem seção “Em entrevista” com frases prontas em inglês e vocabulário técnico.

Não cobre: a teoria de análise de complexidade (Big-O, recorrências, classes de complexidade) — isso vive no galho Algoritmos. Aqui a complexidade aparece pontualmente, por estrutura.

Iniciado — estruturas fundamentais

  1. 01 - O que é uma estrutura de dados — contrato de operações, dimensões (tempo/espaço/ordem), framework de decisão.
  2. 02 - Arrays e listas dinâmicas — array, array dinâmico, localidade de cache, custo amortizado.
  3. 03 - Listas encadeadas — singly/doubly, o trade-off contra o array.
  4. 04 - Pilhas, filas e deques — LIFO/FIFO, deque.
  5. 05 - Tabelas hash — hashing, colisões, load factor, o contrato hashCode/equals.

Adepto — hierárquicas e relacionais

  1. 06 - Árvores e árvores de busca — BST, balanceadas (AVL/Red-Black), TreeMap.
  2. 07 - Heaps e filas de prioridade — heap binário, top-K.
  3. 08 - Tries — busca por prefixo, autocomplete.
  4. 09 - Árvores B e índices — B-Tree/B+Tree e os índices de banco.
  5. 10 - Grafos - representação e tipos — adjacência (lista/matriz), direcionado/ponderado/DAG.
  6. 11 - Grafos - travessia e algoritmos — BFS, DFS, Dijkstra, topological sort, union-find.

Magus — especializadas e aplicação

  1. 12 - Estruturas especializadas — LRU cache, Bloom filter, skip list, disjoint set.
  2. 13 - Escolhendo a estrutura certa — tabela comparativa, patterns de entrevista, armadilhas, prep bilíngue.

Rotas alternativas

Entrevista internacional

01 → 02 → 05 → 07 → 10 → 11 → 13. Trade-offs, hash, heap (top-K), grafos e o capstone de decisão.

Comparação entre linguagens

01 → 02 → 05 → 06 → 10. As estruturas com maior divergência de implementação entre Java/TS/Python/Go.

Base para banco de dados

05 → 06 → 09. Hash, árvores de busca e B-Trees — o que sustenta os índices.

Todas as notas

TABLE fase, status, updated
FROM "03-Dominios/Fundamentos/Estruturas de Dados"
WHERE type = "concept"
SORT file.name ASC

Veja também