Tda cola apuntadores
#include
#include
typedef int tipo_elem;
struct nodo{
tipo_elem elem;
nodo *sig;
};
struct cola{
nodo *frente,*final;
}COLA;
typedefnodo Nodo;
typedef Nodo *posicion;
typedef int logico;
//FUNCIONES DE LAS OPERACIONES CON COLAS
//Inicializa
void inicializa(posicion *Cola) {
*Cola=new(Nodo);
(*Cola)->sig=NULL;COLA.frente=NULL;
COLA.final=NULL;
}
//Inserta.
void inserta(tipo_elem x, posicion Cola){
posicion aux,aux2;
aux=new Nodo;
aux->elem=x;
aux->sig=NULL;
aux2=Cola;
while(aux2->sig!=NULL)aux2=aux2->sig;
aux2->sig =aux;
COLA.final=aux;
if(COLA.frente==NULL)
COLA.frente=aux;
}
//Vacia
logico vacia(posicion Cola){
if (Cola->sig==NULL)
return 1;
else
return 0;}
//Suprimir
void suprimir(posicion Cola){
posicion aux;
if (vacia(Cola))
printf("Cola Vacia");
else{
aux=Cola->sig->sig;
delete(Cola->sig);
Cola->sig=aux;COLA.frente=aux;
if(COLA.frente==NULL)
COLA.final=NULL;
printf("El elemento fue eliminado exitosamente\n");
}
}
//Frente
tipo_elem Frente(){
return (COLA.frente->elem);
}
//Finaltipo_elem Final(){
return (COLA.final->elem);
}
//Imprime
void imprime(posicion Cola){
posicion aux;
if (vacia(Cola))
printf("Cola vacia");
else {
aux=Cola->sig;while(aux!=NULL){
printf("%d ",aux->elem);
aux=aux->sig;
}
}
}
//Anula
void anula(posicion Cola){
posicion aux;
if (vacia(Cola))
printf("Cola vacia");
else
{
while(Cola->sig!=NULL)suprimir(Cola);
printf("La Cola ha sido anulada");
}
getch();
}
void main()
{
Nodo*C;
inicializa(&C);
int x,e,i,num;
int opc;
do{ clrscr();
printf ("***********MenuPrincipal*********** \n\n");
printf ("1-Agregar a la Cola \n");
printf ("2-Suprimir de la Cola \n");
printf ("3-Frente de la Cola \n");
printf ("4-Final de la Cola \n");
printf ("5-Anula la Cola...
Regístrate para leer el documento completo.