no es lo mismo una estructura de datos de pila que de cola. Para que entiendas por completo estos dos formas de estructurar los datos, en este artículo te detallamos todas sus diferencias. Pero antes, repasemos cada uno de ellos por separado.
¿Qué es la estructura de datos de pila?
Apilar es un tipo de estructura datos abstracto que sirve como una colección de elementos, con dos operaciones principales: PUSH, que agrega un elemento a la colección y POP, que elimina el elemento agregado más recientemente que aún no se eliminó.
Generalmente, las pilas se basan en el principio Last In First Out (LIFO), es decir, el elemento insertado al final es el primer elemento que sale de la lista. La pila se llama pila porque se comporta como una pila del mundo real, por ejemplo, una baraja de cartas o una pila de platos, objetos, etc. Cada vez que se agrega un elemento, se coloca en la parte superior de la pila y es el único elemento que puede ser eliminado es el elemento que está en la parte superior de la pila.
Para usar una pila de manera eficiente, también debemos verificar el estado de la pila. Para el mismo propósito, se agrega la siguiente funcionalidad a las pilas:
- peek ():
obtiene el elemento de datos superior de la pila, sin eliminarlo. - isFul (): compruebe si la pila está llena.
- isEmpty (): comprueba si la pila está vacía.
Aplicación de la pila
- Inversión de palabras
- Analizando
- Conversión de expresiones (infijo a sufijo, sufijo a prefijo, etc.).
Lo que necesita saber sobre la estructura de datos de pila
- Las pilas se basan en el principio de último en entrar, primero en salir (LIFO), es decir, el elemento insertado en el último es el primer elemento que sale de la lista.
- La inserción y eliminación en pilas se realiza solo desde un extremo de la lista referido al principio. El elemento solo se puede quitar en el orden opuesto de inserción.
- Una pila requiere solo un puntero de referencia, denominado puntero superior, que siempre apunta al último elemento presente en la lista.
- En las pilas, solo se mantiene una bandera para acceder a la lista, que siempre apunta al último elemento presente en la lista.
- En la pila, las operaciones se denominan PUSH y POP. La operación de inserción es agregar una operación en la pila, mientras que la operación POP está quitando un elemento en la pila.
- Una pila no se puede dividir en subsecciones y no tiene extensiones.
- Una estructura de datos de pila no es necesariamente una colección ordenada de elementos de datos.
- Los elementos más y menos accesibles se denominan TOP y BOTTOM de la pila.
- Para comprobar si una pila está vacía, se utiliza la siguiente condición: TOP == – 1 .
- Para verificar si una pila está llena, se usa la siguiente condición: TOP == MAX-1.
- La programación de tareas por sistema operativo usa cola o una interrupción del sistema es un buen ejemplo donde se usa el mecanismo de cola.
- La pila se usa en infijo para postfijar conversión, programación de algoritmos, búsqueda en profundidad y evaluación de una expresión.
¿Qué es la estructura de datos de la cola?
Al igual que las pilas, la estructura en cola es un tipo de datos abstracto o una estructura de datos lineal en la que el primer elemento se inserta desde un extremo denominado REAR (también llamado tail) y la eliminación del elemento existente tiene lugar desde el otro extremo denominado FRONT (también llamado cabeza).
Generalmente, las colas son estructuras de datos basadas en el principio Primero en entrar, primero en salir (FIFO), es decir, el elemento insertado en el primero es el primer elemento que sale de la lista. Así es exactamente como funciona el sistema de colas en el mundo real. Por ejemplo, mientras espera en la fila de su tienda de comida favorita, el primero en la fila será el primero en irse, y se agregarán nuevas personas al final de la cola.
El proceso de agregar un elemento a la cola se denomina Enqueue mientras que el proceso de eliminar un elemento de la cola se conoce como Dequeue.
Aplicaciones de la cola
- Manejo de interrupciones en sistemas en tiempo real. Las interrupciones se manejan en el mismo orden en que llegaron, es decir, por orden de llegada.
- Los sistemas telefónicos del centro de llamadas utilizan Colas para retener a las personas que los llaman en un orden, hasta que un representante de servicio está libre.
- Atender solicitudes en un solo recurso compartido como una impresora, programación de tareas de CPU, etc.
Lo que necesita saber sobre la estructura de datos de la cola
- Las colas son estructuras de datos basadas en el principio Primero en entrar, primero en salir (FIFO), es decir, el elemento insertado en el primero es el primer elemento que sale de la lista.
- La inserción y eliminación en colas se realiza desde los extremos opuestos de la lista. La inserción se realiza al final de la lista y la eliminación se realiza desde el principio de la lista. Los elementos solo se pueden eliminar en el mismo orden de inserción.
- Una cola requiere dos punteros de referencia denominados punteros FRONT y REAR. El puntero delantero siempre apunta al primer elemento insertado en la lista y todavía está presente y el puntero trasero siempre apunta al último elemento insertado.
- En las colas, se mantienen dos banderas para acceder a la lista. La bandera delantera siempre apunta al primer elemento insertado en la lista y todavía está presente y la bandera trasera siempre apunta al último elemento insertado.
- En cola, las operaciones se denominan Enqueue y Dequeue. La operación de poner en cola es agregar una operación en la cola mientras que Dequeue está quitando un elemento en la cola.
- Una cola se puede dividir en subsecciones con las siguientes extensiones: Cola circular, Cola de prioridad, Cola de doble final y Cola simple.
- Una estructura de datos en cola es una colección ordenada de elementos de datos.
- La inserción de un elemento se realiza en el extremo FRONTAL y la eliminación se realiza desde el extremo TRASERO.
- Para comprobar si una cola está vacía, se utiliza la siguiente condición: FRONT == – 1 || DELANTERO == TRASERO + 1.
- Para comprobar si una cola está llena, se utiliza la siguiente condición: REAR == MAX-1.
- La programación de tareas por el sistema operativo utiliza la cola o la forma en que funciona la llamada recursiva al sistema, utiliza un mecanismo de pila.
- Una cola ofrece servicios en investigación de operaciones, transporte e informática que involucra personas, datos, eventos y objetos para ser almacenados para su posterior procesamiento.
Diferencias entre estructuras de datos de pila y de cola
A continuación te mostramos una tabla comparativa entre las diferencias de las estructuras de pila y de cola.
DATOS EN PILAS | DATOS EN COLA |
Las pilas se basan en el principio de último en entrar, primero en salir (LIFO), es decir, el elemento insertado en el último es el primer elemento que sale de la lista. | Las colas son estructuras de datos basadas en el principio Primero en entrar, primero en salir (FIFO), es decir, el elemento insertado en el primero es el primer elemento que sale de la lista. |
La inserción y eliminación en pilas se realiza solo desde un extremo de la lista referido al principio. | La inserción y eliminación en colas se realiza desde los extremos opuestos de la lista. |
Una pila requiere solo un puntero de referencia, denominado puntero superior, que siempre apunta al último elemento presente en la lista. | Una cola requiere dos punteros de referencia denominados punteros FRONT y REAR. |
En las pilas, solo se mantiene una bandera para acceder a la lista, que siempre apunta al último elemento presente en la lista. | En las colas, se mantienen dos banderas para acceder a la lista. |
En la pila, las operaciones se denominan PUSH y POP. La operación de inserción es agregar una operación en la pila, mientras que la operación POP está quitando un elemento en la pila. | En cola, las operaciones se denominan Enqueue y Dequeue. La operación de poner en cola es agregar una operación en la cola mientras que Dequeue está quitando un elemento en la cola. |
Una pila no se puede dividir en subsecciones y no tiene extensiones. | Una cola se puede dividir en subsecciones con las siguientes extensiones: Cola circular, Cola de prioridad, Cola de doble final y Cola simple. |
Una estructura de datos de pila no es necesariamente una colección ordenada de elementos de datos. | Una estructura de datos en cola es una colección ordenada de elementos de datos. |
Los elementos más y menos accesibles se denominan TOP y BOTTOM de la pila. | La inserción de un elemento se realiza en el extremo FRONTAL y la eliminación se realiza desde el extremo TRASERO. |
Para comprobar si una pila está vacía, se utiliza la siguiente condición: TOP == – 1 . | Para comprobar si una cola está vacía, se utiliza la siguiente condición: FRONT == – 1 || DELANTERO == TRASERO + 1. |
Para verificar si una pila está llena, se usa la siguiente condición: TOP == MAX-1. | Para comprobar si una cola está llena, se utiliza la siguiente condición: REAR == MAX-1. |
La programación de tareas por sistema operativo usa cola o una interrupción del sistema es un buen ejemplo donde se usa el mecanismo de cola. | La programación de tareas por el sistema operativo utiliza la cola o la forma en que funciona la llamada recursiva al sistema, utiliza un mecanismo de pila. |
La pila se usa en infijo para postfijar conversión, programación de algoritmos, búsqueda en profundidad y evaluación de una expresión. | Una cola ofrece servicios en investigación de operaciones, transporte e informática que involucra personas, datos, eventos y objetos para ser almacenados para su posterior procesamiento. |