Sobes.tech
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:

  1. 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
      
  2. 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