Buscar y desencolar cola
Mediante programación en C++, desarrollar un programa que permita buscar, vaciar, desencolar y ver elemento de una cola.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void inicializa(struct cola&);
void encola(struct cola&,int);
void verCola(struct cola);
void vaciaCola(struct cola&);
int buscar(struct cola&,int);
int desencola(struct cola&);
struct nodo{
int nro;
struct nodo*sgte;
};
struct cola{
struct nodo*delante;
struct nodo*atras;
};
void main(void)
{
int opc;
struct cola q;
int n,ele;
inicializa(q);
do{
cout<<endl<<"-----MENU-----"<<endl;
cout<<"1.Encolar elemento"<<endl;
cout<<"2.Desencolar elemento"<<endl;
cout<<"3.Visualizar cola"<<endl;
cout<<"4.Vaciar cola"<<endl;
cout<<"5. Buscar"<<endl;
cout<<"6.Salir"<<endl;
cout<<"Ingrese opcion = ";cin>>opc;
switch(opc)
{
case 1:cout<<endl<<"Encolar elemento = ";cin>>n;
encola(q,n);
break;
case 2:if(q.delante!=NULL)
{
n=desencola(q);
cout<<endl<<"Desencola elemento = "<<n<<endl;
}
else cout<<endl<<"No hay elementos en la cola"<<endl;
break;
case 3:cout<<endl<<"Elemento de la cola = "<<endl;
verCola(q);
break;
case 4:vaciaCola(q);
break;
case 5:cout<<"elemento que desea buscar:";
cin>>ele;
if(buscar(q,ele)==1)
cout<<"elemento encontrado.n";
else
cout<<"elemento no encontrado.n";
break;
}
}while(opc!=6);
}
void inicializa(struct cola&q)
{
q.delante=NULL;
q.atras=NULL;
}
void encola(struct cola&q,int n)
{
struct nodo*p;
p=new(struct nodo);
p->nro=n;
p->sgte=NULL;
if(q.delante==NULL)
q.delante=p;
else(q.atras)->sgte=p;
q.atras=p;
}
int desencola(struct cola&q)
{
struct nodo*p;
p=q.delante;
int n=p->nro;
q.delante=(q.delante)->sgte;
delete(p);
return n;
}
void vaciaCola(struct cola&q)
{
struct nodo*p,*r;
p=q.delante;
while(p!=NULL)
{
r=p;
p=p->sgte;
delete(r);
}
q.delante=NULL;
q.atras=NULL;
}
void verCola(struct cola q)
{
struct nodo*p;
p=q.delante;
while(p!=NULL)
{
cout<<p->nro<<endl;
p=p->sgte;
}
}
int buscar(struct cola&q, int ele)
{int k=1;
while(q.delante!=NULL)
{
if(q.delante!=NULL)
{
printf("POSICION DEL ELEMENTO %i", k); cout<<endl;
return 1;
}
q.delante=q.delante->sgte;
k++;
}
return 0;
}
Continuando con Colas, les comparto el siguiente post: Ingresar y leer elementos de la cola