Junior
¿Qué estructuras de datos existen?
sobes.tech AI
Respuesta de la IA
Las estructuras de datos se dividen en dos categorías principales:
-
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
- Arreglo (Array): Tamaño fijo, acceso directo por índice.
-
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
- Árbol (Tree): Estructura jerárquica con nodo raíz y descendientes.