En Ciencias de la computación, la pila y la cola son dos tipos de datos abstractos que son estructuras de datos simples que utilizan punteros para representar conjuntos dinámicos. Sin embargo, se puede notar una diferencia entre ellos en función de sus implementaciones. Las operaciones básicas de inserción y eliminación de elementos son compatibles tanto con la pila como con la cola. los diferencia principal entre la pila y la cola es que una apilar implementos Política de último en entrar, primero en salir o LIFO, mientras que un cola implementos Política de First In First Out o FIFO.
Una pila es una Estructura de datos lineales que sirve de conjunto de elementos.. Solo se puede acceder a un extremo de la estructura para realizar operaciones en elementos, y comúnmente se lo conoce como parte superior. Se pueden realizar dos operaciones principales en una pila; empujar y popular. Una operación de 'inserción' realizada en una pila se llama empujar y se llama una operación de 'eliminar' realizada en una pila popular.
los empujar La operación agrega un elemento a la parte superior de la colección. Realizando un popular La operación elimina un elemento que se encuentra en la parte superior de la colección. Dado que los elementos que se eliminan de la pila están en orden inverso al orden de su adición, se sabe que la estructura sigue el enfoque Último en Primero en Salir o un enfoque LIFO. Dada esta implementación, los elementos más bajos han estado en la pila durante más tiempo.
Una pila es considerada como una estructura de datos restringida Debido al pequeño número de operaciones que se pueden realizar en una pila. Además, un ojeada la operación se puede implementar para devolver el valor del elemento superior sin modificar el elemento. Además, las implementaciones de una pila a menudo tienen una Esta vacio función para comprobar si la pila está vacía. En entornos que dependen mucho de pilas, funciones como borrar, intercambio / cambio y girar También se puede proporcionar. Pero estos no son esenciales para la funcionalidad básica de una pila..
Una pila tiene una capacidad limitada. Si la pila está llena, entra en un estado de desbordamiento, lo que significa que no hay suficiente espacio para que más elementos se inserten en la pila. Si la pila está vacía y no hay elementos para abrir, la pila está en un estado de desbordamiento.
Una pila se puede implementar fácilmente utilizando matrices o listas vinculadas en la mayoría de los lenguajes de programación de alto nivel.
Las pilas se aplican en áreas como la evaluación de expresiones aritméticas, la gestión de la memoria en tiempo de ejecución, el recorrido del árbol, el análisis de sintaxis, etc..
Una cola es una estructura de datos lineal que también sirve como una colección de elementos. Ambos extremos de una cola son accesibles para realizar operaciones en elementos y se llaman típicamente cabeza y cola. Se pueden realizar dos operaciones principales en una cola; encolar y dequeue. Encolar es la operación de inserción mientras dequeue es la operación de eliminación realizada en una cola.
Cuando un elemento se pone en cola, se agrega a la cola de la cola. Realizando un dequeue La operación eliminará un elemento de la cabecera de la cola. Dado que los elementos en cola siempre se eliminan en cola en el mismo orden en que se pusieron en cola, se dice que la estructura implementa un enfoque de Primero en entrar, primero en salir o FIFO.
Similar a una pila, una cola es también una estructura de datos restringida Dado el pequeño número de operaciones que se pueden realizar. Además ojeada la operación se puede implementar en una cola, que devolverá el valor del elemento al principio de la cola sin anularlo. Otras operaciones primitivas en una cola pueden incluir Esta vacio, Está lleno, y monitor. los Esta vacio función comprueba si la cola está vacía y Está lleno Compruebe si la cola está llena. los monitor La función se puede utilizar para presentar el contenido de la cola. Pero, de nuevo, estas funciones no son críticas para la implementación de una cola..
A diferencia de una pila, las colas pueden implementarse para tener una capacidad limitada o sin una capacidad específica. Un estado de desbordamiento de una cola se produce cuando un elemento se pone en cola en una cola completa, y un estado de desbordamiento se produce cuando un elemento se pone en cola, pero la cola está vacía.
El tipo de cola puede diferir en la forma en que se realizan las operaciones de puesta en cola y salida de la cola en los elementos. La cola circular, la cola de prioridad y la cola doble son los tipos especiales de colas.
Usando matrices y listas vinculadas, las colas pueden implementarse eficientemente en lenguajes de programación de alto nivel.
Las colas son aplicables en muchas áreas, como simulaciones, procesamiento por lotes en sistemas operativos, algoritmos de programación, solicitudes de almacenamiento en búfer, sistemas de plataforma de multiprogramación, etc..
Accesibilidad a los elementos
en un apilar, Las operaciones en los datos se pueden realizar solo en la parte superior de la pila.
en un cola, Ambos extremos de la cola son accesibles para las operaciones. Una inserción tiene lugar en la cola de la cola, y se puede hacer una eliminación en la cabecera.
Comportamiento
UNA apilar es una estructura de datos LIFO, donde el elemento que se agregó por última vez a la pila es el primer elemento que se eliminará. La eliminación es en orden inverso al orden de adición..
UNA cola es una estructura de datos FIFO, donde el elemento que se agregó primero a la cola será el primer elemento que se eliminará. El orden de inserción y extracción son los mismos..
Operaciones básicas
en un apilar, un elemento se inserta en la parte superior de la pila y se retira de la parte superior también.
Pero en un cola, un elemento se inserta al final de una cola y se elimina del frente.
Capacidad
UNA apilar tiene una capacidad limitada.
UNA cola Puede ser de capacidad limitada, pero generalmente se implementa sin una capacidad específica..
El desperdicio del espacio de memoria
Desde un apilar solo se necesita un puntero para realizar un seguimiento de la parte superior de la pila, no hay desperdicio de espacio de memoria.
UNA cola necesita dos punteros 'front' y 'rear' para mantener un registro de ambos extremos de la cola. Por lo tanto, hay desperdicio de espacio de memoria..
Tanto la pila como la cola se utilizan con el fin de mantener listas ordenadas de elementos. Mientras que una pila es una estructura de datos LIFO, una cola implementa un enfoque FIFO. Solo se puede acceder a un extremo de una pila para las operaciones principales, pero se pueden usar ambos extremos de una cola.