// Base de consulta por taxonomia

Referencias tecnicas das estruturas

Documentacao resumida para cada estrutura do projeto, com foco em classificacao, implementacao, cenarios de uso e um link tecnico externo para aprofundamento.

Categoria

Linear

Linear

Sequencial

Disponivel

Array Estático

Static Array

C#
T[]
Implementacao
array contíguo fixo

Resumo: Bloco contíguo de memória com acesso direto por índice.

Quando usar: Bom quando o tamanho é previsível e leitura por posição precisa ser rápida.

Pontos de atencao: Inserir ou remover no meio desloca elementos e custa mais.

Busca O(n)
Insercao O(n)
Alteracao O(1)

Linear

Sequencial

Disponivel

Lista Dinâmica

Dynamic List

C#
List<T>
Implementacao
array dinâmico contíguo

Resumo: Lista baseada em array dinâmico, com crescimento de capacidade sob demanda.

Quando usar: Boa quando o tamanho varia, mas acesso por índice e iteração sequencial continuam importantes.

Pontos de atencao: Inserções no meio ainda deslocam elementos e realocações ocasionais copiam o buffer inteiro.

Busca O(n)
Insercao O(1)
Alteracao O(1)

Linear

Encadeada

Disponivel

Lista Encadeada Simples

Singly Linked List

C#
custom SinglyLinkedList
Implementacao
nós com next

Resumo: Coleção linear formada por nós em que cada item aponta só para o próximo.

Quando usar: Útil quando inserções na cabeça são frequentes e a travessia sequencial basta.

Pontos de atencao: Não oferece acesso aleatório eficiente e a busca segue linear.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Encadeada

Disponivel

Lista Encadeada Dupla

Doubly Linked List

C#
LinkedList<T>
Implementacao
lista duplamente encadeada

Resumo: Lista em que cada nó conhece o anterior e o próximo, permitindo travessia nos dois sentidos.

Quando usar: Boa para inserir e remover itens conhecidos sem precisar voltar a estrutura inteira.

Pontos de atencao: Cada nó consome mais memória e a localização por índice continua linear.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Encadeada

Disponivel

Lista Circular

Circular Linked List

C#
custom CircularList
Implementacao
lista encadeada circular

Resumo: Variante encadeada em que o último nó volta ao início e a iteração pode recomecar sem reposicionar ponteiros.

Quando usar: Faz sentido em round-robin, buffers cíclicos e escalonamento.

Pontos de atencao: A parada da iteração exige mais cuidado para não criar loops infinitos.

Busca O(n)
Insercao O(n)
Alteracao O(n)

Linear

Restrita

Em breve

Pilha (Stack)

Stack

C#
Stack<T>
Implementacao
coleção LIFO

Resumo: Estrutura em que o último item inserido é o primeiro a sair.

Quando usar: Adequada para undo, chamadas de função, parsing e backtracking.

Pontos de atencao: Acesso restrito ao topo; procurar itens internos não é o foco.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Restrita

Em breve

Fila (Queue)

Queue

C#
Queue<T>
Implementacao
coleção FIFO

Resumo: Estrutura em que o primeiro item inserido é o primeiro a sair.

Quando usar: Boa para processamento em ordem de chegada, buffers e filas de trabalho.

Pontos de atencao: Acesso eficiente só nas extremidades; buscar no meio continua caro.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Restrita

Em breve

Fila Circular

Circular Queue

C#
custom CircularQueue
Implementacao
buffer circular

Resumo: Fila limitada implementada sobre um array em anel para reaproveitar espaço.

Quando usar: Faz sentido em buffers de IO, filas com capacidade fixa e sistemas embarcados.

Pontos de atencao: Exige controle cuidadoso de head, tail e estado cheio ou vazio.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Restrita

Em breve

Deque

Deque

C#
custom Deque
Implementacao
duas extremidades

Resumo: Fila de dupla extremidade, com inserção e remoção eficientes na frente e no fim.

Quando usar: Útil para janelas deslizantes, algoritmos monotonic queue e pilha ou fila flexível.

Pontos de atencao: A API cresce e a implementação precisa preservar bem as duas pontas.

Busca O(n)
Insercao O(1)
Alteracao O(n)

Linear

Probabilística

Em breve

Skip List

Skip List

C#
custom SkipList
Implementacao
listas encadeadas em níveis

Resumo: Lista ordenada em múltiplos níveis com saltos probabilísticos para acelerar buscas e inserções.

Quando usar: Interessante quando se quer busca próxima de O(log n) com uma estrutura encadeada e balanceamento simples.

Pontos de atencao: Depende de aleatoriedade e usa mais ponteiros que uma lista ligada tradicional.

Busca O(log n)
Insercao O(log n)
Alteracao O(log n)

Categoria

Árvore

Árvore

Em breve

Árvore Binária de Busca

Binary Search Tree

C#
custom BinarySearchTree
Implementacao
árvore binária ordenada

Resumo: Árvore binária em que a ordem dos valores permite navegar por comparação.

Quando usar: Boa para manter dados ordenados com consultas e inserções frequentes.

Pontos de atencao: Sem balanceamento, pode degradar para comportamento linear.

Busca O(log n)
Insercao O(log n)
Alteracao O(log n)

Árvore

Em breve

Árvore AVL

AVL Tree

C#
custom AvlTree
Implementacao
árvore balanceada

Resumo: BST auto-balanceada que usa rotações para manter altura controlada.

Quando usar: Indicada quando a garantia de busca O(log n) é mais importante que simplicidade.

Pontos de atencao: Inserção e remoção são mais complexas por causa do rebalanceamento.

Busca O(log n)
Insercao O(log n)
Alteracao O(log n)

Árvore

Em breve

Heap (Min/Max)

Heap

C#
PriorityQueue<T>
Implementacao
heap binário

Resumo: Árvore quase completa usada para priorizar o menor ou maior elemento.

Quando usar: Ideal para filas de prioridade, escalonamento e seleção incremental.

Pontos de atencao: Ótimo para topo, mas não para busca arbitrária ordenada.

Busca O(n)
Insercao O(log n)
Alteracao O(log n)

Árvore

Em breve

Trie

Trie

C#
custom Trie
Implementacao
árvore de prefixos

Resumo: Árvore especializada para armazenar chaves por prefixos compartilhados.

Quando usar: Muito útil para autocomplete, dicionários e busca por prefixo.

Pontos de atencao: Pode consumir bastante memória quando o alfabeto ou as chaves crescem.

Busca O(m)
Insercao O(m)
Alteracao O(m)

Categoria

Hash

Hash

Em breve

Tabela Hash

Hash Table

C#
Dictionary<TKey,TValue>
Implementacao
hash buckets

Resumo: Mapa de chaves para posições calculadas por função hash.

Quando usar: Excelente para lookup médio O(1), caches e dicionários por chave.

Pontos de atencao: Colisões e redimensionamento afetam memória e custo real.

Busca O(1)
Insercao O(1)
Alteracao O(1)

Categoria

Grafo

Grafo

Em breve

Grafo

Graph

C#
custom Graph
Implementacao
lista de adjacência

Resumo: Conjunto de vértices conectados por arestas, dirigido ou não.

Quando usar: Base para rotas, dependências, redes sociais e problemas de conectividade.

Pontos de atencao: A modelagem e os algoritmos ficam mais complexos que em estruturas lineares.

Busca O(V+E)
Insercao O(1)
Alteracao O(1)