Sobes.tech
Junior

¿Qué estructuras de datos existen?

sobes.tech AI

Respuesta de la IA

Las estructuras de datos se dividen en dos categorías principales:

  1. Lineales: Los elementos están dispuestos secuencialmente.

    • Arreglo (Array): Tamaño fijo, acceso directo por índice.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Ejemplo de declaración
      
    • Lista (List): Tamaño dinámico, los elementos se añaden y eliminan.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Lista enlazada (Linked List): Los elementos (nodos) contienen una referencia al siguiente (y posiblemente al anterior).
      • Simplemente enlazada
      • Doblemente enlazada
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Pila (Stack): El último en entrar, el primero en salir (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Añade un elemento en la cima
      int item = stack.Pop(); // Elimina y devuelve el elemento de la cima
      
    • Cola (Queue): El primero en entrar, el primero en salir (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Tarea 1"); // Añade un elemento al final
      string task = queue.Dequeue(); // Elimina y devuelve el elemento del principio
      
  2. No lineales: Los elementos no están dispuestos secuencialmente.

    • Árbol (Tree): Estructura jerárquica con nodo raíz y descendientes.
      • Árbol binario
      • Árbol B
      • Árbol rojo-negro
      • Árbol AVL
    • Grafo (Graph): Conjunto de vértices (nodos) y aristas (conexiones) entre ellos.
      • Dirigido (Directed)
      • No dirigido (Undirected)
    • Tabla hash (Hash Table) / Diccionario (Dictionary): Almacenan pares clave-valor, usando una función hash para búsqueda rápida.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Acceso rápido por clave
      
    • Conjunto (Set): Colección de elementos únicos sin orden específico.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // No se añadirá el duplicado