Junior
Quais são as estruturas de dados existentes?
sobes.tech IA
Resposta da IA
As estruturas de dados dividem-se em duas categorias principais:
-
Lineares: Os elementos estão dispostos sequencialmente.
- Array (Array): Tamanho fixo, acesso direto por índice.
int[] numbers = { 1, 2, 3, 4, 5 }; // Exemplo de declaração - Lista (List): Tamanho dinâmico, elementos são adicionados e removidos.
System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>(); names.Add("Alice"); names.Add("Bob"); - Lista ligada (Linked List): Os elementos (nós) contêm uma referência ao seguinte (e possivelmente ao anterior).
- Simplesmente ligada
- Duplamente ligada
System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>(); letters.AddLast('A'); letters.AddLast('B'); - Pilha (Stack): Último a entrar, primeiro a sair (LIFO).
System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>(); stack.Push(10); // Adiciona um elemento no topo int item = stack.Pop(); // Remove e retorna o elemento do topo - Fila (Queue): Primeiro a entrar, primeiro a sair (FIFO).
System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>(); queue.Enqueue("Tarefa 1"); // Adiciona um elemento ao final string task = queue.Dequeue(); // Remove e retorna o elemento do início
- Array (Array): Tamanho fixo, acesso direto por índice.
-
Não lineares: Os elementos não estão dispostos sequencialmente.
- Árvore (Tree): Estrutura hierárquica com nó raiz e descendentes.
- Árvore binária
- Árvore B
- Árvore vermelho-preto
- Árvore AVL
- Grafo (Graph): Conjunto de vértices (nós) e arestas (ligações) entre eles.
- Dirigido (Directed)
- Não dirigido (Undirected)
- Tabela hash (Hash Table) / Dicionário (Dictionary): Armazenam pares chave-valor, usando uma função hash para busca rápida.
System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>(); ageByName.Add("Charlie", 30); int age = ageByName["Charlie"]; // Acesso rápido por chave - Conjunto (Set): Coleção de elementos únicos sem ordem definida.
System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>(); uniqueNumbers.Add(5); uniqueNumbers.Add(10); uniqueNumbers.Add(5); // Duplicado não será adicionado
- Árvore (Tree): Estrutura hierárquica com nó raiz e descendentes.