← Estructuras de datos desde cero · Lección 1/32
¿Qué es una estructura de datos?
Acomodar para encontrar
Una estructura de datos es una forma de acomodar información para que ciertas operaciones salgan baratas. No es sólo dónde se guardan los datos: es qué tan rápido puedes buscar, meter, sacar o recorrer lo que hay ahí.
Ya las usas sin llamarlas así:
- La fila de la tortillería: el primero que llega es el primero que sale. Eso es una cola.
- Una pila de platos: el último que pusiste arriba es el primero que tomas. Eso es una pila.
- El índice de un libro, ordenado de la A a la Z: no lo lees entero para encontrar una palabra. Eso se parece a un árbol de búsqueda.
Elegir una estructura es decidir qué operaciones van a ser rápidas y cuáles vas a pagar caro.
Toda la lección en una página
Acomodar para encontrar
Una estructura de datos es una forma de acomodar información para que ciertas operaciones salgan baratas. No es sólo dónde se guardan los datos: es qué tan rápido puedes buscar, meter, sacar o recorrer lo que hay ahí.
Ya las usas sin llamarlas así:
- La fila de la tortillería: el primero que llega es el primero que sale. Eso es una cola.
- Una pila de platos: el último que pusiste arriba es el primero que tomas. Eso es una pila.
- El índice de un libro, ordenado de la A a la Z: no lo lees entero para encontrar una palabra. Eso se parece a un árbol de búsqueda.
Elegir una estructura es decidir qué operaciones van a ser rápidas y cuáles vas a pagar caro.
Por qué JavaScript
Este curso va en JavaScript por tres razones:
- Corre aquí mismo, en tu navegador: cada ejemplo tiene un botón CORRER y puedes cambiar el código y volver a correrlo. No hay que instalar nada.
- Es el lenguaje de los juegos de Daily Challenge, que tienen su propio curso.
- Las ideas son las mismas en Python, C o Java. Cambia cómo se escribe, no cómo se piensa.
El código ya se corrió: junto a él (a la derecha, o debajo en el teléfono) está lo que imprimió console.log. Cambia "aguacate" por otra cosa y córrelo otra vez.
// Una lista del súper: un arreglo (en orden)
const lista = ["tortillas", "frijol", "aguacate"];
console.log(lista);
console.log(lista.length);
// Una ficha de producto: un objeto (por nombre)
const producto = { nombre: "aguacate", precio: 45 };
console.log(producto.precio);
- El arreglo sale con sus corchetes y sus elementos en el orden en que los pusiste.
lengthcuenta cuántos hay: 3.- Al objeto se le pide un dato por su nombre (
precio), no por su posición.
Los mismos datos, otro costo
Aquí están los mismos tres productos guardados de dos formas. Las dos contestan «¿hay frijol?», pero de manera distinta:
- El arreglo revisa uno por uno hasta encontrarlo. Con tres no se nota; con un millón, sí.
- El conjunto (
Set) va directo, como si supiera en qué cajón está.
A cambio, el conjunto no guarda el orden de manera útil ni admite repetidos. No hay una estructura mejor que todas: hay una mejor para lo que vas a hacer.
const enArreglo = ["tortillas", "frijol", "aguacate"];
const enConjunto = new Set(enArreglo);
console.log(enArreglo.includes("frijol")); // revisa uno por uno
console.log(enConjunto.has("frijol")); // va directo
enConjunto.add("frijol"); // ya estaba: no se repite
console.log(enConjunto.size);
Las dos primeras dicen true: la respuesta es la misma, lo que cambia es el trabajo para llegar a ella. Y el tamaño del conjunto sigue en 3 aunque metiste otro frijol.