Está en la página 1de 5

Colas en C++

Rodrigo Paszniuk | 2013-04-27 | 8 Comments


26

Colas
Definición: ¿Qué es una Cola?
El diccionario de la Real Academia Española define una acepción de cola como “hilera de
personas que esperan turno para alguna cosa” ; una hilera de vehículos esperando pasar
una frontera, una hilera de personas para entrar en un teatro, o una cola de trabajos en un
sistema de computadora que espera la disponibilidad de algún dispositivo de salida tal
como una impresora.
En cada uno de estos ejemplos, los elementos se atienden en el orden en que llegaron; es
decir, el primer elemento en entrar  (primero de la cola) es el primero en ser
atendido  (salir). La cola es una estructura FIFO (First In First Out)
 

Ejemplos de colas en Computación


 Cola en el Spooler de Impresión.
 Cola en la espera de instrucciones a seguir.
 Cola en la recepción de datos.
 Etc.

Evolución de la Cola
 

Operaciones Básicas de la Cola


 Inicializar la cola.
 Añadir un elemento al final de la cola.
 Eliminar el primer elemento de la cola.
 Vaciar la cola.
 Verificar el estado de la cola: Vacía / Llena.

Implementación de las funciones con Punteros


//Declaraciones generales
Estructura tipo_nombre
…………..
…………..
tipo_nombre siguiente
Fin de estructura
tipo_nombre à primero, aux, ultimo
tipo cantidad à tope
 
función inicializar
primero = nulo
ultimo = nulo
fin función
 
lógica función vacía
si ultimo = nulo
devolver (verdadero)
si no
                        devolver (falso)
fin función
 
lógica función llena
si primero = tope
devolver (verdadero)
si no
                        devolver (falso)
fin función
 
función eliminar
dato = primero.dato
aux = primero
primero = aux.siguiente
liberar(aux)
fin función
 
función añadir
reservar (aux)
aux.dato = dato
ultimo.siguiente = aux
ultimo = aux
fin función
 
Ejemplo de Cola:
1  
2  
#include <iostream.h>
3 #include <conio.h>
4 #include <string.h>
5 #include <stdlib.h>
6 #include <stdio.h>
7  
8 struct datos {
 int dato;
9  datos *s;
10  }*p,*aux,*u;
11  
12 void insertar (int dat);
13 void borrar ();
14 void listar ();
15  
main()
16 {
17 int opc,y;
18 do
19 {
cout<<"\n1. Insertar";
20 cout<<"\t2. Borrar";
21 cout<<"\t3. Listar";
22 cout<<"\t4. Salir";
23 cout<<"\n Ingrese opcion: ";cin>>opc;
24 switch(opc)
25 {
case 1: cout<<"Ingrese dato: ";
26  cin>>y;
27  insertar(y);
28  cout<<"\nDato insertado!!";
29  break;
30 case 2: borrar();
 break;
31 case 3: listar(); break;
32 case 4: exit(1);
33 default: cout<<"\n Opcion no valida!!"; break;
34 }
35 }while(opc);
}
36
 
37 void insertar (int dat)
38 {
39 aux=new(datos);
40 aux->dato=dat;
if(u)
41 {
42 u->s=aux;
43 aux->s=NULL;
44 u=aux;
45 }
else
46 {
47 p=u=aux;
48 }
49 }
50 void borrar()
{
51 if(p)
52 {
53 aux=p;
54 cout<<"\nElimino a " <<p->dato;
p=aux->s;
55 delete(aux);
56 }
57 else
58 {
59 cout<<"\n No hay datos";
}
60 }
61  
62 void listar()
63 {
64 int i;
if(!u)
65
{
66 cout<<"\n No hay datos en la cola";
67 return;
68 }
69 aux=p;
while(aux)
70 {
71 cout<<"\n"<<++i<<" - "<<aux->dato;
72 aux=aux->s;
73 }
74 }
 
75
76
77
78
79
80
81
82 &nbsp;
83
84
85
86
87
88
89
90

También podría gustarte