Abrir el simulador
Pila, cola y árbol binario de búsqueda: inserta, extrae, busca, elimina y recorre paso a paso.
Lo que vas a aprender
- Las operaciones de una pila y una cola, y dónde se usan.
- Cómo se organiza un árbol binario de búsqueda.
- Insertar, buscar y eliminar en un árbol.
- Los recorridos inorden, preorden y postorden.
- El coste de cada operación.
Cómo se usa el simulador
- Elige Pila, Cola o Árbol binario.
- Pila: escribe un valor y usa push (meter), pop (sacar) y peek (mirar la cima).
- Cola: encola y desencola.
- Árbol: inserta, busca, elimina y recorre (inorden, preorden, postorden) paso a paso, viendo qué nodos se visitan.
- Cada estructura incluye ejemplos de dónde se usa.
Fundamentos teóricos
Pila (LIFO)
Last In, First Out: el último en entrar es el primero en salir, como una pila de platos. Solo se accede a la cima.
Usos: deshacer (Ctrl+Z), historial del navegador, la pila de llamadas de un programa, comprobar paréntesis equilibrados.
Cola (FIFO)
First In, First Out: el primero en entrar es el primero en salir, como la cola del supermercado. Se mete por el final y se saca por el principio. Usos: cola de impresión, procesos esperando la CPU, mensajes, la búsqueda en anchura (BFS) en grafos.Árbol binario de búsqueda (ABB)
Cada nodo tiene como mucho dos hijos, y se cumple:- Todo lo del subárbol izquierdo es menor que el nodo.
- Todo lo del subárbol derecho es mayor.
- Hoja: se quita.
- Un hijo: el hijo ocupa su lugar.
- Dos hijos: se sustituye por su sucesor (el menor del subárbol derecho) o su predecesor, y se elimina este.
Coste en un árbol
Las operaciones recorren un camino desde la raíz: su coste es la altura del árbol. Si está equilibrado, . Si se insertan los datos ya ordenados, el árbol degenera en una lista y el coste es .Recorridos
Ejemplos resueltos
Ejemplo 1 · Recorridos
Ejemplo 1 · Recorridos
Se insertan 50, 30, 70, 20 y 40. El árbol queda con 50 en la raíz, 30 y 70 como hijos, y 20 y 40 bajo el 30.
- Preorden: 50, 30, 20, 40, 70.
- Inorden: 20, 30, 40, 50, 70 (ordenado).
- Postorden: 20, 40, 30, 70, 50.
Ejemplo 2 · Pila
Ejemplo 2 · Pila
push(12), push(7), push(31), pop(), push(42), pop(). ¿Qué queda? 12 y 7 (cima 7). Los pop sacaron 31 y 42.
Ejemplo 3 · Paréntesis
Ejemplo 3 · Paréntesis
Para comprobar
( [ ] { } ), se apila cada apertura y, en cada cierre, se desapila y se comprueba que coincide. Si al final la pila está vacía, están equilibrados.Experimenta con el simulador
1
LIFO y FIFO
Mete 1, 2, 3 en la pila y en la cola y saca los tres. ¿En qué orden salen?
2
Árbol degenerado
Inserta 10, 20, 30, 40, 50 en un árbol vacío. ¿Qué forma tiene?
3
Eliminar con dos hijos
Elimina la raíz de un árbol con varios nodos. ¿Quién ocupa su lugar?
Errores frecuentes
- Hacer pop en una pila vacía (underflow).
- Confundir pila y cola.
- Pensar que un ABB siempre es : solo si está equilibrado.
Herramientas relacionadas
Recorridos de grafos
BFS con cola, DFS con pila.
Árbol binario enhebrado
Recorrer sin pila.
ArrayList y lista enlazada
Otras estructuras lineales.