Estructura de datos y algoritmo: qué es una pila, estructura de almacenamiento de pila detallada

Al igual que la lista secuencial y la lista enlazada, la pila también es una estructura de almacenamiento lineal que se utiliza para almacenar datos con una relación lógica de "uno a uno", como se muestra en la siguiente figura.

Diagrama esquemático de la estructura de almacenamiento de pilas

De la figura anterior, podemos ver que la estructura de almacenamiento de la pila es diferente de la estructura de almacenamiento lineal aprendida anteriormente, porque la pila tiene requisitos especiales para el proceso de "almacenamiento" y "recuperación" de datos:

  1. La pila solo puede acceder a los datos desde un extremo de la tabla y el otro extremo está cerrado, como se muestra en la figura anterior;
  2. En la pila, ya sea que esté almacenando datos o extrayéndolos, se debe seguir el principio de "primero en entrar, último en salir", es decir, el elemento de pila más avanzado es el último en salir de la pila. Tome la pila en la figura anterior como ejemplo, se puede juzgar por el estado de almacenamiento de los datos en la figura que el elemento 1 es la pila más avanzada. Por lo tanto, cuando es necesario sacar el elemento 1 de la pila, de acuerdo con el principio de "primero en entrar, último en salir", los elementos 3 y 2 deben sacarse de la pila con anticipación, y luego el elemento 1 se puede sacar con éxito. sacado.

Por lo tanto, podemos dar una definición a la pila, es decir, la pila es una estructura de almacenamiento lineal que solo puede acceder a los datos desde un extremo de la tabla y sigue el principio de "primero en entrar, último en salir".

Por lo general, el extremo abierto de la pila se denomina parte superior de la pila; en consecuencia, el extremo cerrado se denomina parte inferior de la pila. Por lo tanto, el elemento superior de la pila se refiere al elemento más cercano a la parte superior de la pila.Tomando la Figura 2 como ejemplo, el elemento superior de la pila es el elemento 4; de manera similar, el elemento inferior de la pila se refiere al elemento en la parte inferior de la pila La parte inferior de la pila en la figura siguiente El elemento es el elemento 1.

parte superior e inferior de la pila

empujar y hacer estallar

Con base en las características de la estructura de la pila, en aplicaciones prácticas, solo las dos operaciones siguientes generalmente se realizan en la pila:

  • Al agregar elementos a la pila, este proceso se llama "empujar" (empujar o empujar);
  • Extraiga el elemento especificado de la pila, este proceso se llama "hacer estallar la pila" (o hacer estallar la pila);

La implementación específica de la pila.

La pila es una estructura de almacenamiento lineal "especial", por lo que la implementación específica de la pila tiene los siguientes dos métodos:

  1. Pila secuencial: el uso de la estructura de almacenamiento secuencial puede simular las características de los datos de almacenamiento de pila, para realizar la estructura de almacenamiento de pila;
  2. Pila de cadena: use la estructura de almacenamiento de cadena para realizar la estructura de pila;

La diferencia entre las dos implementaciones se limita a la posición relativa de los elementos de datos almacenados en el espacio físico real. La capa inferior de la pila de secuencias es una matriz y la capa inferior de la pila de cadenas es una lista enlazada. La implementación específica de la pila secuencial y la pila de cadena se explicará en detalle en los capítulos siguientes.

aplicación de pila

Basado en las características del principio de "primero en entrar, último en salir" para el acceso a datos basado en la estructura de la pila, se puede utilizar para implementar muchas funciones.

Por ejemplo, a menudo usamos nuestros navegadores para buscar información en varios sitios web. Suponga que navega por la página A primero, luego cierra la página A y salta a la página B, luego cierra la página B y salta a la página C. En este momento, si queremos volver a la página A, tenemos dos opciones:

  • Busque de nuevo para encontrar la página A;
  • Utilice la función de "retroceder" de su navegador. El navegador retrocederá primero a la página B y luego a la página A.

La implementación de la función "alternativa" del navegador utiliza la estructura de almacenamiento de pila en la parte inferior. Cuando cierre la página A, el navegador empujará la página A a la pila; de manera similar, cuando cierre la página B, el navegador también empujará la B a la pila. Por lo tanto, cuando realiza una operación de reversión, primero verá la página B y luego la página A. Este es el efecto de los datos en la pila que se extraen de la pila uno por uno.

No solo eso, la estructura de almacenamiento de la pila también puede ayudarnos a detectar problemas de coincidencia de paréntesis en el código. Los corchetes (pequeños corchetes, corchetes y corchetes) se usan en la mayoría de los lenguajes de programación. El uso incorrecto de los corchetes (generalmente faltan los corchetes derechos) causará errores de compilación del programa, y ​​muchas herramientas de desarrollo tienen la función de detectar si el código tiene edición. errores , que incluye el problema de hacer coincidir corchetes en el código de detección. La implementación subyacente de esta función utiliza una estructura de pila.

Al mismo tiempo, la estructura de la pila también puede realizar la función de conversión decimal del valor. Por ejemplo, se puede lograr escribir un programa para convertir automáticamente de un número decimal a un número binario utilizando una estructura de almacenamiento de pila.

Lo anterior es solo la punta del iceberg en el campo de la aplicación de pila, por lo que no daré demasiados ejemplos aquí. En el estudio de los capítulos subsiguientes, utilizaremos la estructura de pila de forma extensiva. A continuación, aprenderemos cómo implementar pilas secuenciales y pilas en cadena, y cómo empujar y sacar elementos en la pila.

2023 nueva versión de estructura de datos y algoritmo Java video tutorial (Parte 1), estructura de datos y algoritmo que los programadores senior de Java deben aprender
2023 nueva versión de estructura de datos y algoritmo Java video tutorial (parte 2), estructura de datos y algoritmo que Java programador senior debe aprender

Supongo que te gusta

Origin blog.csdn.net/Itmastergo/article/details/131890711
Recomendado
Clasificación