Saltar al contenido

Estructuras de datos en programación.

Una de las claves para escribir código eficiente y bien organizado es el uso de estructuras de datos en programación. Estas estructuras permiten almacenar, organizar y manipular la información de manera eficiente, facilitando la resolución de problemas computacionales de manera óptima.

Índice de contenidos

    ¿Qué son las estructuras de datos en programación?

    Las estructuras de datos son formas de organizar y gestionar la información en memoria para que pueda ser utilizada de manera eficiente en programas informáticos. Cada estructura tiene sus propias características, ventajas y desventajas, por lo que su elección depende de los requisitos del problema a resolver. Al igual que las variables y las constantes, las estructuras de datos es uno de los conceptos básicos dentro de la programación informática.

    Importancia de las estructuras de datos

    El uso adecuado de estructuras de datos permite:

    • Optimizar el rendimiento de los programas.
    • Facilitar el acceso y manipulación de los datos.
    • Reducir el uso innecesario de memoria.
    • Resolver problemas complejos de manera eficiente.

    Tipos de estructuras de datos de programación.

    Arrays o arreglos unidimensionales.

    Dentro de los tipos de datos, un array unidimensional es una colección de elementos del mismo tipo almacenados en posiciones contiguas de memoria. Se accede a cada elemento mediante un índice numérico que comienza en 0.

    Características:

    • Tamaño fijo determinado en la declaración.
    • Acceso rápido a los elementos mediante su índice.
    • Puede almacenar cualquier tipo de dato (primitivos u objetos).

    Ejemplos de declaración de arreglos o arrays unidimensionales:

    C#
    int[] numeros = new int[5] {1, 2, 3, 4, 5};
    Console.WriteLine(numeros[2]); // Imprime 3
    
    Java
    int[] numeros = {1, 2, 3, 4, 5};
    System.out.println(numeros[2]); // Imprime 3
    
    Python
    numeros = [1, 2, 3, 4, 5]
    print(numeros[2])  # Imprime 3
    
    Visual Basic
    Dim numeros As Integer() = {1, 2, 3, 4, 5}
    Console.WriteLine(numeros(2)) ' Imprime 3
    

    Matrices multidimensionales.

    Una matriz multidimensional es una estructura de datos que almacena elementos en más de una dimensión, generalmente en forma de una tabla (matriz de 2D) o cubo (matriz 3D).

    Características:

    • Puede tener múltiples dimensiones: 2D (filas y columnas), 3D, etc.
    • Se accede a los elementos usando múltiples índices.

    Ejemplos de declaración de arreglos o arrays multidimensionales:

    C#
    int[,] matriz = { {1, 2, 3}, {4, 5, 6} };
    Console.WriteLine(matriz[1, 2]); // Imprime 6
    
    Java
    int[][] matriz = { {1, 2, 3}, {4, 5, 6} };
    System.out.println(matriz[1][2]); // Imprime 6
    
    Python
    matriz = [[1, 2, 3], [4, 5, 6]]
    print(matriz[1][2])  # Imprime 6
    
    Visual Basic
    Dim matriz(,) As Integer = {{1, 2, 3}, {4, 5, 6}}
    Console.WriteLine(matriz(1, 2)) ' Imprime 6
    

    Listas.

    Las listas son estructuras dinámicas que permiten agregar y eliminar elementos sin un tamaño fijo.

    Características:

    • Permiten agregar y eliminar elementos fácilmente.
    • Pueden contener elementos de diferentes tipos (en algunos lenguajes).

    Ejemplos de declaración de listas en C#, java, python y Visual Basic:

    C#
    List<int> lista = new List<int> {1, 2, 3};
    lista.Add(4);
    Console.WriteLine(lista[3]); // Imprime 4
    
    Java
    ArrayList<Integer> lista = new ArrayList<>();
    lista.add(1);
    lista.add(2);
    lista.add(3);
    lista.add(4);
    System.out.println(lista.get(3)); // Imprime 4
    
    Python
    lista = [1, 2, 3]
    lista.append(4)
    print(lista[3])  # Imprime 4
    
    Visual Basic
    Dim lista As New List(Of Integer) From {1, 2, 3}
    lista.Add(4)
    Console.WriteLine(lista(3)) ' Imprime 4
    

    Pilas (stacks).

    Una pila es una estructura de datos en programación llamada LIFO (Last In, First Out), donde el último elemento agregado es el primero en salir.

    Operaciones que se pueden realizar con estas estructuras de datos en programación:

    • Push: Agregar elemento.
    • Pop: Retirar el último elemento.
    • Peek: Ver el último elemento sin retirarlo.

    Ejemplos de declaración de de pilas en programación.

    C#
    Stack<int> pila = new Stack<int>();
    pila.Push(1);
    pila.Push(2);
    pila.Push(3);
    Console.WriteLine(pila.Pop()); // Imprime 3
    
    Java
    Stack<Integer> pila = new Stack<>();
    pila.push(1);
    pila.push(2);
    pila.push(3);
    System.out.println(pila.pop()); // Imprime 3
    
    Python
    pila = []
    pila.append(1)
    pila.append(2)
    pila.append(3)
    print(pila.pop())  # Imprime 3
    
    Visual Basic
    Dim pila As New Stack(Of Integer)
    pila.Push(1)
    pila.Push(2)
    pila.Push(3)
    Console.WriteLine(pila.Pop()) ' Imprime 3
    

    Colas (Queues).

    Una cola es una estructura de datos FIFO (First In, First Out), donde el primer elemento agregado es el primero en salir.

    Ejemplos de declaración de colas o queues en programación.

    C#
    Queue<int> cola = new Queue<int>();
    cola.Enqueue(1);
    cola.Enqueue(2);
    cola.Enqueue(3);
    Console.WriteLine(cola.Dequeue()); // Imprime 1
    
    Java
    Queue<Integer> cola = new LinkedList<>();
    cola.add(1);
    cola.add(2);
    cola.add(3);
    System.out.println(cola.poll()); // Imprime 1
    
    Python
    from collections import deque
    cola = deque([1, 2, 3])
    print(cola.popleft())  # Imprime 1
    
    Visual Basic
    Dim cola As New Queue(Of Integer)
    cola.Enqueue(1)
    cola.Enqueue(2)
    cola.Enqueue(3)
    Console.WriteLine(cola.Dequeue()) ' Imprime 1
    

    Tuplas.

    Una tupla es una estructura de datos inmutable en programación que almacena un conjunto de valores.

    Ejemplos de declaración de tuplas.

    Python.
    tupla = (1, 2, 3)
    print(tupla[1])  # Imprime 2
    

    Las tuplas son estructuras de datos en programación que no existen en los lenguajes C#, java ni visual basic.

    Diccionarios. Estructuras de datos map y hashMap.

    Un diccionario es una estructura de datos en programación que almacena pares clave-valor.

    Ejemplos de declaración diccionarios en programación:

    C#
    Dictionary<string, int> diccionario = new Dictionary<string, int> {
        {"uno", 1}, {"dos", 2}, {"tres", 3}
    };
    Console.WriteLine(diccionario["dos"]); // Imprime 2
    
    Java
    Map<String, Integer> diccionario = new HashMap<>();
    diccionario.put("uno", 1);
    diccionario.put("dos", 2);
    diccionario.put("tres", 3);
    System.out.println(diccionario.get("dos")); // Imprime 2
    
    Python
    diccionario = {"uno": 1, "dos": 2, "tres": 3}
    print(diccionario["dos"])  # Imprime 2
    
    Visual Basic
    Dim diccionario As New Dictionary(Of String, Integer) From {{"uno", 1}, {"dos", 2}, {"tres", 3}}
    Console.WriteLine(diccionario("dos")) ' Imprime 2
    

    Estructuras de datos en programación (struct)

    Un struct es una colección de datos agrupados.

    Ejemplos de declaración de estructuras (struct):

    C#
    struct Persona {
        public string Nombre;
        public int Edad;
    }
    
    Java
    class Persona {
        String nombre;
        int edad;
    }
    
    Python
    class Persona:
        def __init__(self, nombre, edad):
            self.nombre = nombre
            self.edad = edad
    
    Visual Basic
    Structure Persona
        Public Nombre As String
        Public Edad As Integer
    End Structure
    
    Configuración