Tda cola apuntadores

Solo disponible en BuenasTareas
  • Páginas : 2 (353 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de febrero de 2010
Leer documento completo
Vista previa del texto
//Colas con encabezado

#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...
tracking img