Академический Документы
Профессиональный Документы
Культура Документы
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;
}
}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;
}
p=p->sgte;
}
p2=p->sgte;
p->sgte=NULL;
(r.delante)=p2;