Stack vs Heap
La pila es una lista ordenada en la que la inserción y eliminación de elementos de la lista se puede hacer solo en un extremo llamado la parte superior. Debido a esta razón, la pila se considera como la estructura de datos del último en salir (LIFO). Heap es una estructura de datos especial que se basa en árboles y satisface una propiedad especial llamada la propiedad de montón. Además, un montón es un árbol completo, lo que significa que no hay espacios entre las hojas del árbol, es decir, en un árbol completo, todos los niveles se completan antes de agregar un nuevo nivel al árbol y los nodos de un nivel determinado se rellenan desde de izquierda a derecha.
Que es stack?
Como se mencionó anteriormente, la pila es una estructura de datos en la que los elementos se agregan y eliminan de un solo extremo llamado la parte superior. Las pilas solo permiten dos operaciones fundamentales llamadas push y pop. La operación de empuje agrega un nuevo elemento a la parte superior de la pila. La operación pop elimina un elemento de la parte superior de la pila. Si la pila ya está llena, cuando se realiza una operación de inserción, se considera un desbordamiento de pila. Si se realiza una operación emergente en una pila ya vacía, se considera como un desbordamiento de pila. Debido al pequeño número de operaciones que podrían realizarse en una pila, se considera como una estructura de datos restringida. Además, de acuerdo con la forma en que se definen las operaciones de inserción y apertura, está claro que los elementos que se agregaron por última vez a la pila salen primero de la pila. Por lo tanto, la pila se considera como una estructura de datos LIFO.
Que es el montón?
Como se mencionó anteriormente, heap es un árbol completo que satisface la propiedad de heap. La propiedad Heap indica que, si y es un nodo secundario de x, entonces el valor almacenado en el nodo x debe ser mayor o igual al valor almacenado en el nodo y (es decir, el valor (x) ≥ valor (y)). Esta propiedad implica que el nodo con el mayor valor siempre se colocará en la raíz. Un montón construido con esta propiedad se llama max-heap. Hay otra variación de la propiedad de montón que establece lo contrario de esto. (es decir, valor (x) ≤ valor (y)). Esto implica que el nodo con el valor más pequeño siempre se colocará en la raíz, por lo que se denomina min-heap. Hay una amplia gama de operaciones realizadas en montones como encontrar mínimo (en min-heaps) o máximo (en max-heaps), eliminar mínimo (en min-heaps) o máximo (en max-heaps), aumentar (en max -Columnas) o teclas decrecientes (en min-montones), etc..
¿Cuál es la diferencia entre Stack y Heap??
La principal diferencia entre las pilas y los montones es que mientras que la pila es una estructura de datos lineal, el montón es una estructura de datos no lineal. La pila es una lista ordenada que sigue la propiedad LIFO, mientras que el montón es un árbol completo que sigue la propiedad del montón. Además, stack es una estructura de datos restringida que admite solo un número limitado de operaciones como push y pop, mientras que heap admite una amplia gama de operaciones, como buscar y eliminar el mínimo o el máximo, aumentar o disminuir la clave y fusionar.