Las pilas proporcionan una forma única de trabajar con memoria contigua. Muy similares a las matrices y listas, las pilas proporcionan una manera para que los usuarios accedan a diferentes piezas de datos contiguos de una manera de último en entrar, primero en salir .
Imagina si estuvieras mirando una pila de libros. Siempre que quisieras agregar un libro a la pila, sería muy fácil ponerlo encima. Del mismo modo, si quisieras agarrar un libro de la pila, sería muy fácil agarrar el libro en la parte superior.
Ahora, si desea acceder a cualquier libro arbitrario en la pila, tendría que quitar o levantar todos los libros que están encima, tomar el libro que desea y luego volver a agregar los libros eliminados. Esto puede ser un poco doloroso.
- ¿Los comerciantes algorítmicos institucionales necesitan tener una sólida comprensión de la microestructura del mercado?
- ¿Qué sabes sobre el algoritmo de búsqueda de Fiverr?
- ¿Cuáles son los trabajos orientados a la lógica pura para los programadores?
- ¿Estudiar CLRS me ayuda a aprender el aprendizaje automático?
- Cómo implementar un hashing sensible a la localidad
¡Así es exactamente como funciona una estructura de datos de pila! Las pilas permiten 3 operaciones básicas:
O (1) → E Peek ()
O (1) → E Pop ()
O (1) → void Add (elemento E)
Pero cada una de estas operaciones solo se aplica a la parte superior de su pila de libros. Si desea acceder a un libro arbitrario, deberá eliminar los N libros principales, acceder al que desea y luego agregar los N libros superiores.
Ahora, esta pregunta pide las ventajas de una pila. Las pilas son fáciles de usar (soporte inherente de Utils Library en Java y STL en C ++) y el tiempo de ejecución de la garantía O (1) para las 3 operaciones anteriores. Por supuesto, puede argumentar que use una matriz o una lista, pero ¿por qué no usar la estructura de datos incorporada cuando tiene la opción de hacerlo? 🙂