Pilas, colas y listas enlazadas – punteros paso a paso
InformáticaAlgoritmos y resolución de problemasEdades 17–18
Cargando…
Inicia sesión para usarApila y desapila en una pila, encola y desencola en colas lineales, circulares y de prioridad, e inserta, elimina y busca nodos en una lista enlazada, viendo cómo cambian los punteros top, front, rear y head y los enlaces next línea a línea en Python o pseudocódigo, con desbordamiento y subdesbordamiento. Compara implementaciones con arreglo estático y con nodos y punteros dinámicos, incluido el uso de memoria, y prueba aplicaciones: comprobación de paréntesis, deshacer/rehacer, una cola de impresión y la pila de llamadas.
Lección: Estructuras de datos abstractas: pilas, colas y listas enlazadas; implementación con arreglos y con punteros
Qué muestra
Las pilas, las colas y las listas enlazadas son estructuras de datos abstractas. Una pila es «último en entrar, primero en salir»: push y pop actúan en la cima. Una cola es «primero en entrar, primero en salir»: los elementos entran por el final y salen por el frente; una cola circular reutiliza las celdas libres con MOD y una cola de prioridad atiende primero la prioridad más alta. Una lista enlazada guarda cada valor en un nodo con un puntero al siguiente y termina en un puntero nulo. Un arreglo estático reserva un bloque fijo y puede desbordarse; los nodos dinámicos crecen pero gastan memoria en punteros.
Cómo usarla
Elige Pila, Cola, Lista enlazada o Aplicaciones y una Implementación. Escribe un Valor y pulsa un botón de operación como Apilar, Encolar o Insertar en posición; el código avanza línea a línea a la Velocidad elegida. Marca Línea a línea y pulsa Siguiente línea para ir despacio, o Terminar operación. Observa los punteros, el panel Memoria y el registro Operaciones.
Parámetros que puedes cambiar
- Modo Pila, Cola, Lista enlazada, Aplicaciones
- Implementación Arreglo estático, Nodos y punteros (dinámica)
- Tipo de cola Lineal, Circular, De prioridad
- Capacidad del arreglo 3–10 celdas
- Aplicación Comprobar paréntesis (pila), Deshacer / rehacer (dos pilas), Cola de impresión (cola), Pila de llamadas
- Lenguaje Python, Pseudocódigo
- Velocidad 0,5–5 líneas/s
Preguntas para explorar
- ¿Por qué una cola lineal puede estar llena con celdas vacías al frente, y cómo lo resuelve una cola circular?
- ¿Qué punteros cambian al insertar un nodo en medio de una lista enlazada?
- ¿Cuántos bytes necesitan seis enteros como arreglo estático y como nodos enlazados en este modelo?