Vous êtes sur la page 1sur 8

Repblica bolivariana de

Venezuela
Universidad Fermn Toro
Faculta de Ingeniera

cola
Nombre: Andrea
Prez
C.I: 23815601
Col Operacion
a
Es una estructura de
datos que se
Crear: se crea la cola
es
vaca.
caracteriza por ser de Agregar: (aadir, entrar,
tipo FIFO es decir que insertar): se aade un
el primer elemento en elemento a la cola. Se
entrar ser tambin el aade al final de esta.
primero en salir.
Eliminar: (sacar, salir,
eliminar): se elimina el
elemento frontal de la
cola, es decir, el primer
elemento que entr.

Frente: (consultar, front):


Encolar = agregar en la
cola se devuelve el elemento
Desencolar = Eliminar de frontal de la cola, es
Declara
r cola
Definimos la estructura del
struct nodo
nodo
{
Dato *sgte
int nro;
=nro
struct nodo *sgte;
};
Crear
apuntadore
s Se crean los apuntadores
struct cola
que nos indican el
{
principio y fin de la cola
nodo *delante;
nodo *atras ;
};
Aadir
Nodo
void encolar( struct cola &q, int valor )
{
Se crea el
struct nodo *aux = new(struct nodo);
nuevo nodo
aux->nro = valor;
aux->sgte = NULL;
se agrega el
if( q.delante == NULL) nuevo nodo si
q.delante = aux; no existe
Colocamos el nodo
nuevo en la cola
else cuando ya hay nodos
(q.atras)->sgte = aux; en la cola
puntero que
siempre
q.atras = aux;
apunta al
}
ultimo
elemento
Eliminar
Nodo
int desencolar( struct cola aux apunta al inicio de la
&q ) cola que es donde se ubica
{ el dato que se desea
int num ; eliminar
struct nodo *aux ;
El nodo de atrs del nodo
aux = q.delante; eliminado pasa a ser le
num = aux->nro; siguiente y el principio de
q.delante = la cola
(q.delante)->sgte;
delete(aux); Elimina el nodo y libera
memoria a donde
return num; apuntaba aux
}
Imprimi
r cola Me indica que aux
apunta al nodo del
inicio de la cola
void muestraCola( struct
cola q ) Mientras
{ aux sea
struct nodo *aux; diferente de
NULL
aux = q.delante;
Imprime la
while( aux != NULL ) variable
{ apuntada
cout<<" "<< aux-
>nro ;
aux = aux->sgte; Aux apunta al
} siguiente
} nodo
Eliminar
toda la
cola
void vaciaCola( struct cola
&q)
{
struct nodo *aux; Mientras el apuntador de
adelante sea diferente de
while( q.delante != NULL entro al ciclo
NULL)
{ Elimino los nodos uno a uno
aux = q.delante; hasta completar el ciclo
q.delante = aux-
>sgte;
delete(aux); los ubico en NULL porque no
} hay mas nodos
q.delante = NULL;
q.atras = NULL;

}
Estructura
int main()
principal
{
struct cola q;
case 3:
q.delante = NULL;
q.atras = NULL; cout << "\n\n MOSTRANDO
COLA\n\n";
if(q.delante!=NULL)
int dato; // numero a encolar muestraCola( q );
int op; // opcion del menu
else cout<<"\n\n\tCola
int x ; // numero que devuelve la funcon pop
vacia...!"<<endl;
system("color 0b"); break;

do
{ case 4:
menu(); cin>> op;

switch(op) vaciaCola( q );
{ cout<<"\n\n\t\tHecho...\n\n";
case 1: break;

cout<< "\n NUMERO A ENCOLAR: "; cin>> }


dato;
encolar( q, dato );
cout<<"\n\n\t\tNumero " << dato << " cout<<endl<<endl;
encolado...\n\n"; system("pause"); system("cls");
break;
case 2: }while(op!=5);
x = desencolar( q );
cout<<"\n\n\t\tNumero "<< x <<"
desencolado...\n\n";

Vous aimerez peut-être aussi