¿Qué son la pila y el montón en lenguaje C?
Una pila es como un cubo o una caja de datos.
Comencemos con la pila con la que todo el mundo está familiarizado. La pila es una estructura de datos con propiedades LIFO, es decir, buscar primero y luego almacenar, y almacenar primero y luego buscar.
Es como si estuviéramos sacando algo del fondo de la caja (el objeto que se puso antes). Primero debemos quitar el objeto que está presionando (el objeto que se mete después).
Apilados como un árbol al revés
Los montones son diferentes. El montón es una estructura de datos de árbol ordenada donde cada nodo tiene un valor.
Por lo general, la estructura de datos del montón se refiere al montón binario. La característica de un montón es que el nodo raíz tiene el valor más pequeño (o más grande), y los dos subárboles del nodo raíz también son un montón.
Debido a esta característica del montón, a menudo se usa para implementar colas de prioridad. El acceso al montón es arbitrario, como tomar un libro de la estantería de una biblioteca.
Aunque los libros están ordenados, cuando queremos coger alguno, no tenemos que sacar todos los libros que tenemos delante como un montón. El mecanismo de la estantería es diferente al de la caja. Podemos sacar directamente los libros que queramos.
Datos ampliados:
Metáfora sobre la diferencia entre montón y pila
Usar la pila es como ir a un restaurante a comer. Simplemente ordenamos (solicitamos), pagamos para comer (usamos) y nos vamos cuando estamos llenos. No tenemos que preocuparnos por los trabajos de preparación, como picar y lavar verduras, ni por los trabajos de acabado, como lavar platos y ollas. Su ventaja es que es rápido pero tiene poca libertad.
Usar montones es como cocinar tus propios platos favoritos. Es más problemático, pero se adapta más a tu propio gusto y tiene mayor libertad.
Pila de enciclopedia Baidu