La estructura de datos de la pila sigue la política LIFO, es decir, la política Último en entrar, primero en salir.
El orden en que se sacan los elementos de la pila es inverso al orden en que se empujaron.
- ¿Cuál es el proceso de ejecución exacto de imprimir permutaciones de cadena de forma recursiva?
- ¿Es posible aprender estructuras de datos y algoritmos en un mes?
- ¿Cuál es el algoritmo más optimizado para encontrar la suma de la diferencia absoluta de cada par distinto en una matriz entera?
- ¿Cuál sería un algoritmo para aplicar un filtro rosa a una imagen?
- ¿Cómo aprenden los algoritmos de aprendizaje de refuerzo del juego de ajedrez a jugar bien, dado que cada movimiento no está etiquetado como bueno o malo, a diferencia del aprendizaje supervisado donde cada dato está etiquetado como bueno o malo?
Esta estructura de datos encuentra uso en: –
- Creación de una memoria virtual en tiempo de ejecución en calculadoras.
- Funciones de rehacer y deshacer en editores.
- Función de avance y retroceso en los navegadores web.
A continuación se muestra el algoritmo (que consiste en Pseudocódigo) que implementa los procedimientos básicos de esta estructura de datos.
// Procedimientos para implementar Stack
// Top se refiere al objeto más alto en la pila
// Si Top == 0, la pila está vacía.
// s se refiere a nuestra pila
STACK_EMPTY (s)
si s.top == 0
volver VERDADERO
de lo contrario, devuelve FALSO
EMPUJE (s, x)
s.Top = s.Top + 1 // primero aumentando el tamaño.
s [s.Top] = x; // Poniendo el objeto x en la parte superior.
POP (s)
si STACK_EMPTY (s) == VERDADERO
volver “ERROR”
más
s.Top = s.Top – 1 // Disminuyendo el tamaño
// para que Object no esté más en la pila
volver s [s.Top +1]
// devuelve el Objeto que está siendo expulsado.
El algoritmo anterior comienza a indexar desde 1;
Sin embargo, en C, la indexación de una matriz comienza desde 0. Por lo tanto, reemplace 0 del procedimiento stackEmpty con -1;
A continuación se muestra la implementación del código anterior en C.
Editar: Los siguientes son algunos enlaces útiles:
Estructura de datos de pila (Introducción y programa) – GeeksforGeeks