Ir al contenido
Ayotl

← Estructuras de datos desde cero · Lección 1/32

¿Qué es una estructura de datos?

✕
1/7

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.

AnaBetoCaroDani←←saleentra
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.

AnaBetoCaroDani←←saleentra

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.
  • length cuenta 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.