Вы находитесь на странице: 1из 3

#include<iostream.

h>
#include<conio.h>
void inicializa(struct cola &);
void encola(struct cola &, int);
void verCola(struct cola);
void vaciaCola(struct cola &);
int desencola(struct cola &);
int buscar(struct cola ,int );
void div (struct cola &, struct cola &, int);
struct nodo{
int nro;
struct nodo * sgte;
};
struct cola{
struct nodo * delante;// apunta al primero
struct nodo * atras;// apunta al ultimo
};
void main(void)
{
int opc,l;
struct cola q,p;
int n;
inicializa(q);
inicializa(p);
do{clrscr();
cout<<endl<<"******MENU********"<<endl;
cout<<"[1] Ingresa Elementos"<<endl;
cout<<"[2] Retirar Elementos"<<endl;
cout<<"[3] Visualiza cola"<<endl;
cout<<"[4] Vaciar Cola"<<endl;
cout<<"[5] Repetidos"<<endl;
cout<<"[6] dividir cola"<<endl;
cout<<"[7] Salir"<<endl;
cout<<"Ingrese Opcion";
cin>>opc;
switch(opc)
{
case 1:
{cout<<"INGRESE EL LIMITE DE ELEMENTOS :";cin>>l;
for(int i=0;i<l;i++)
{cout<<"Ingresar Elementos:";
cin>>n;
encola(q,n);}}
break;
case 2: if(q.delante!=NULL)
{n=desencola(q);
cout<<endl<<"Desencola elementos"<<n<<endl;}
else
cout<<endl<<"No hay elementos en la cola"<<endl;getch();
break;
case 3: cout<<endl<<"Elementos de la primera cola:"<<endl;
verCola(q);
cout<<endl<<"segunda cola"<<endl;
verCola(p);getch();
break;
case 4: vaciaCola(q);
break;
case 5:cout<<"INGRESE ELEMENTO PARA BUSCAR:";cin>>l;
cout<<"El elemento "<<l<<" se repite "<<buscar(q,l)<<" veces
"<<endl;getch();
break;

case 6: cout<<"ingrese limite de la primera lista:";cin>>l;


div(q,p,l);

}
}while(opc!=7);
}
//funciones---------------------------
void inicializa(struct cola &q)
{q.delante=NULL;//apunta al primer elemento
q.atras=NULL; //apunta al ultimo elemento
}
//INGRESA ELEMENTOS EN LA COLA
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; //ingresa el primer elemento
else
(q.atras)->sgte=p;// si no apunta a un nuevo nodo
q.atras=p;// la cola apunta al ultimo elemento recientemente ingresado
}
//ELIMINA ELEMENTOS EN LA COLA
int desencola(struct cola &q)
{
struct nodo *p;
p=q.delante;// apunta al primer elemento
int n=p->nro;
q.delante=(q.delante)->sgte;
delete(p);
return n;
}

//BORRA LOS DATOS DE LA COLA


void vaciaCola(struct cola &q)
{
struct nodo *p,*r;
p=q.delante;// apunta al primer elemento
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;// apunta al primer elementos
while(p!=NULL)
{
cout<<p->nro<<endl;
p=p->sgte;
}
}

int buscar(struct cola q,int t)


{
int c=0;
struct nodo *p;
p=q.delante;// apunta al primer elementos
while(p!=NULL)
{
if(t==p->nro)
c++;
p=p->sgte;
}
return c;
}

void div(struct cola &q,struct cola &r,int t)


{
struct nodo *p;
struct nodo *p2;
p=q.delante;// apunta al primer elementos
for(int i=0;i<(t-1);i++)
{

p=p->sgte;
}
p2=p->sgte;
p->sgte=NULL;
(r.delante)=p2;

Вам также может понравиться