2. Colas
Una cola (queue) es una estructura de
datos lineal que utiliza una política de
inserción y eliminación de elementos
quot;primero en entrar, primero en salirquot;
conocido en inglés como quot;first-in, first-outquot;.
Mtl Lourdes Cahuich 2
3. Colas
Esto significa que el primer elemento
agregado a una cola es el primer
elemento en ser eliminado de la cola.
En otras palabras, las cosas se eliminan
del inicio y sólo se agregan al final de la
cola
Mtl Lourdes Cahuich 3
4. Colas
Las colas tienen muchas aplicaciones
diferentes en las ciencias
computacionales y el desarrollo de
software.
Una cola puede usarse para proveer un
almacén o buffer.
Un buffer ofrece un almacenamiento
temporal para la información que debe ser
procesada después.
Mtl Lourdes Cahuich 4
5. Colas
Las aplicaciones que transportan audio y
video a través de Internet, almacenan un
cierto número de paquetes en una cola
para prevenir bajas temporales en la
velocidad de conexión
Mtl Lourdes Cahuich 5
8. queue
La Biblioteca de Plantillas Estándar (STL)
contiene adaptadores que proveen una
interfaz nueva, pero similar a un
contenedor existente.
El adaptador de colas ofrece la interfaz
adecuada para una estructura de datos de
colas.
Mtl Lourdes Cahuich 8
9. queue
Está basada, por omisión, en el
contenedor deque.
Cuando un objeto de tipo deque es usado,
un objeto de tipo deque es instanciado
realmente, sólo que con una interfaz más
adecuada para una cola
Mtl Lourdes Cahuich 9
10. #include <iostream>
#include <string>
#include <cstdlib>
#include <queue>
using namespace std;
int main(int argc, char* argv[]) {
queue<int> q;
// push and pop
q.push(1);
q.pop();
// front and back
q.push(1);
q.push(2);
cout << q.front() << endl;
cout << q.back() << endl;
// size and empty
cout << q.size() << endl;
cout << q.empty() << endl;
return EXIT_SUCCESS;
}
Mtl Lourdes Cahuich 10
11. queue
Los métodos push y pop insertan y remueven
elementos de una cola, y los métodos front y
back brindan acceso a los datos almacenados
al inicio y final de una cola.
De forma similar a otros contenedores de STL
que hemos examinado, el método size regresa
el número de elementos almacenados en una
cola, y el método empty despliega un true si la
cola está vacía y un false si la cola está
almacenando al menos un elemento
Mtl Lourdes Cahuich 11
12. queue
Algo de lo que el adaptador de colas
carece, es el soporte de iteradores.
Sin iteradores, no existe un método
para recorrer los elementos almacenados
en una cola.
Esencialmente, una cola esconde todos
los elementos que almacena, excepto el
primero y el último.
Mtl Lourdes Cahuich 12
13. queue
Si una aplicación requiere una cola, pero
también requiere acceso a los elementos
almacenados en la cola, debe usarse un
deque en su lugar.
La siguiente tabla muestra las funciones
miembro de la clase queue y sus
equivalencias en la clase deque
Mtl Lourdes Cahuich 13
14. queue deque
push push_back
pop pop_front
front front
back back
size size
empty empty
funciones miembro queue y sus equivalentes en deque
Mtl Lourdes Cahuich 14