Estruturas de Dados em Rust: Guia Completo

Estruturas de dados em Rust: arrays, listas ligadas, BTreeSet, árvores, grafos e hash maps. Código completo e análise de complexidade.

Domine as estruturas de dados fundamentais e avançadas com implementações completas em Rust. Cada página inclui teoria, análise de complexidade, código idiomático e exemplos práticos.

Estruturas Lineares

Estruturas que organizam dados em sequência — a base de toda computação.

Array e Vec

Arrays de tamanho fixo e vetores dinâmicos. A estrutura mais fundamental do Rust.

Básico O(1) acesso

Lista Ligada

Listas simplesmente e duplamente ligadas. Desafios com ownership e borrowing.

Intermediário O(1) inserção

Pilha (Stack)

LIFO — Last In, First Out. Fundamental para parsers, undo/redo e backtracking.

Básico LIFO

Fila (Queue)

FIFO — First In, First Out. Essencial para BFS, task scheduling e buffers.

Básico FIFO

Deque

Fila de duas pontas com inserção/remoção O(1) em ambas extremidades.

Intermediário O(1) ambos lados

Estruturas Baseadas em Árvores

Hierarquias e ordenação eficiente com estruturas de árvore.

Árvore Binária

A estrutura de árvore fundamental. Travessias in-order, pre-order e post-order.

Intermediário Hierárquica

Árvore Binária de Busca (BST)

Busca, inserção e remoção em O(log n). Base para árvores balanceadas.

Intermediário O(log n)

Árvore AVL

BST auto-balanceada com rotações. Garante O(log n) no pior caso.

Avançado Balanceada

Árvore Rubro-Negra

A árvore balanceada usada por BTreeMap do Rust. Balanceamento com cores.

Avançado BTreeMap

B-Tree

Árvore otimizada para disco e cache. Usada em BTreeMap/BTreeSet do Rust.

Avançado Cache-friendly

Heap Binário

Fila de prioridade com BinaryHeap. Min-heap e max-heap em Rust.

Intermediário Prioridade

Trie (Árvore de Prefixos)

Busca por prefixo em O(k). Autocompletar, dicionários e roteamento IP.

Avançado Prefixos

Tabelas Hash e Conjuntos

Acesso em tempo constante com hashing.

HashMap

Tabela hash com Swiss Table (hashbrown). Acesso O(1) amortizado em Rust.

Básico O(1)

HashSet

Conjunto sem duplicatas baseado em hash. Operações de conjunto em Rust.

Básico Único

Bloom Filter

Estrutura probabilística para testes de pertinência. Zero falsos negativos.

Avançado Probabilístico

Estruturas para Grafos

Representação e manipulação de grafos.

Grafo — Lista de Adjacência

Representação eficiente de grafos esparsos. A mais usada na prática.

Intermediário Esparso

Grafo — Matriz de Adjacência

Representação com matriz para grafos densos. Acesso O(1) a arestas.

Intermediário Denso

Union-Find (Disjoint Set)

Conjuntos disjuntos com path compression e union by rank. Quase O(1).

Avançado α(n)

Estruturas Avançadas

Estruturas especializadas para problemas específicos.

Segment Tree

Consultas e atualizações em intervalos em O(log n). Range queries eficientes.

Avançado Range Query

Fenwick Tree (BIT)

Binary Indexed Tree para prefix sums. Mais simples que Segment Tree.

Avançado Prefix Sum

LRU Cache

Cache com evição Least Recently Used. HashMap + Lista duplamente ligada.

Intermediário Cache

Skip List

Lista ligada com múltiplos níveis. Alternativa probabilística a árvores balanceadas.

Avançado O(log n)

Ring Buffer

Buffer circular de tamanho fixo. Ideal para streaming, logs e produtores/consumidores.

Intermediário Circular

LFU Cache

Cache com evição Least Frequently Used. HashMap + buckets de frequência em O(1).

Avançado Cache

Arena Allocator

Alocação por região com bump allocation. Resolve structs auto-referenciais e grafos em Rust.

Avançado Memória

Pilha (Stack): Estrutura LIFO em Rust

Introdução A pilha (stack) é uma das estruturas de dados mais fundamentais e intuitivas da ciência da computação. Ela segue o princípio LIFO — Last In, First …

Fila (Queue): Estrutura FIFO em Rust

Introdução A fila (queue) é uma estrutura de dados que segue o princípio FIFO — First In, First Out (primeiro a entrar, primeiro a sair). Assim como uma fila de …

Deque: Fila de Duas Pontas em Rust

Introdução O Deque (pronuncia-se “deck”), abreviação de Double-Ended Queue (fila de duas pontas), é uma estrutura de dados que generaliza tanto a pilha quanto a …

Árvore Binária

Introdução A árvore binária é uma das estruturas de dados mais fundamentais da ciência da computação. Ela organiza elementos de forma hierárquica, onde cada nó …

Árvore de Busca Binária (BST)

Introdução A Árvore de Busca Binária (Binary Search Tree ou BST) é uma árvore binária com uma propriedade fundamental: para cada nó, todos os valores na …

Árvore AVL

Introdução A Árvore AVL (nomeada em homenagem a seus inventores Adelson-Velsky e Landis, 1962) é a primeira árvore de busca binária autobalanceada da história. …

Árvore Rubro-Negra (Red-Black Tree)

Introdução A árvore rubro-negra (Red-Black Tree) é uma árvore de busca binária autobalanceada que utiliza um esquema de coloração — cada nó é marcado como …

BTreeSet e BTreeMap: B-Tree em Rust

Introdução A B-Tree (Árvore B) é uma árvore de busca generalizada onde cada nó pode conter múltiplas chaves e ter múltiplos filhos. Inventada por Rudolf Bayer e …