You are on page 1of 3

Cola #include <stdio.h> #include <conio.h> #include <stdlib.

h> #define Salir 0 #define error -9999 struct Nodo{ int info; struct Nodo *sig;}; struct cola{ struct Nodo *inicio; struct Nodo *fin;}; void creaCola(struct cola *q); int colaVacia(struct cola q); void inserta (struct cola *q, int x); int elimina (struct cola *q); void imprimir (struct cola q); int menu(void); void main (void){ struct cola q; int opcion,x; creaCola(&q); printf ("Manejo de Estructura de Datos de Tipo Cola"); do{ opcion=menu(); if(opcion==1){ printf ("\n Elementro a Insertar "); scanf ("%d",&x); inserta (&q,x); imprimir(q);} if(opcion==2){ if(!colaVacia(q)){ x=elimina(&q); printf ("\n Se Elimino %d",x); imprimir(q);} else{ printf ("\nCola Vacia");}} }while(opcion!=Salir); }

Enrique Galindo Crdenas

void creaCola(struct cola *q){ q->inicio=NULL; q->fin=NULL;}

int colaVacia(struct cola q){ return q.inicio==NULL && q.fin==NULL;} void inserta (struct cola *q,int x){ struct Nodo *aux; aux=(struct Nodo*)malloc(sizeof(struct Nodo)); if (aux!=NULL){ aux->info=x; aux->sig=NULL; if(!colaVacia(*q)){ q->fin->sig=aux; q->fin=aux;} else{ q->inicio=aux; q->fin=aux;} } else{ printf ("\n No hay espacio disponible");} } int elimina(struct cola *q){ struct Nodo *aux; int x; if (!colaVacia(*q)){ aux=q->inicio; if (q->inicio==q->fin){ x=aux->info; q->inicio=NULL; q->fin=NULL;} else{ q->inicio=aux->sig; x=aux->info; free(aux);}} else{ x=error;} return x;} void imprimir (struct cola q){ struct Nodo *aux; aux=q.inicio; printf ("\nInicio "); while (aux!=NULL){ printf ("%d ",aux->info); aux=aux->sig;} printf (" fin\n");}

int menu(void){ int op; printf ("\nOpciones"); printf ("\n\t 1...Insertar"); printf ("\n\t 2...Eliminar"); printf ("\n\t 0...Salir"); do{ printf ("\n? "); scanf ("%d",&op); }while (op<Salir||op>3); return op;}

You might also like