Stack vs Queue
Stack vs queue compared — LIFO vs FIFO, operations and use cases, with interactive visualizers for both.
A stack is last-in, first-out (LIFO); a queue is first-in, first-out (FIFO). Both add and remove in O(1) — the difference is which end you take from.
Stack vs Queue at a glance
| Stack | Queue | |
|---|---|---|
| Order | LIFO | FIFO |
| Add / remove | Same end (top) | Opposite ends |
| Used in | Undo, recursion, DFS | Scheduling, buffering, BFS |
| Complexity | O(1) | O(1) |
When to use Stack
Use a stack when the most recent item should be handled first — undo, call stacks, DFS.
When to use Queue
Use a queue when items should be handled in arrival order — task scheduling, BFS, buffers.
Tools for Stack & Queue
Visualizador de Stack
Stack LIFO interactivo — apila y desapila valores con un puntero top animado y control paso a paso. Funciona directamente en tu navegador.
Abrir herramientaVisualizador de colas
Cola FIFO interactiva — inserta (enqueue) y extrae (dequeue) elementos con animación de los punteros front/rear y controles paso a paso. Se ejecuta directamente en el navegador.
Abrir herramientaVisualizador de listas enlazadas
Lista enlazada simple interactiva — inserta al principio/final, busca y elimina con animaciones de recorrido de punteros y controles paso a paso. Se ejecuta directamente en el navegador.
Abrir herramientaVisualizador de Hash Table
Hash table interactiva con separate chaining — inserta, busca y elimina valores con animaciones que muestran el hash y la resolución de colisiones. Funciona directamente en el navegador.
Abrir herramientaStack vs Queue
¿Qué es una hash table?
Una hash table almacena pares clave/valor en un arreglo de buckets, usando una función hash para calcular el índice del bucket correspondiente a cada clave, lo que permite realizar inserciones, búsquedas y eliminaciones a una velocidad casi constante.
¿Qué es una colisión de hash (hash collision)?
Ocurre cuando dos claves distintas se hashean al mismo bucket. Esta herramienta resuelve las colisiones mediante separate chaining — cada bucket contiene una lista enlazada (linked list) de entradas.
¿Cuál es la complejidad temporal de las operaciones de una hash table?
En promedio es O(1) para insertar, buscar y eliminar. En el peor caso es O(n), cuando muchas claves colisionan en el mismo bucket.
¿Qué función hash usa esta herramienta?
Una función hash modular simple, index = value % 7, para que los buckets sean fáciles de seguir. Las hash tables reales usan funciones hash más robustas y se redimensionan automáticamente para mantener las cadenas cortas.