#include #include typedef struct _nodo{ int valor; struct _nodo *siguiente; }tipoNodo; /**Funciones*/ void encolar(tipoNodo **primero,tipoNodo **ultimo,int x); int desencolar(tipoNodo **primero,tipoNodo **ultimo); int main(){ tipoNodo *primero=NULL;//Cola Vacía tipoNodo *ultimo=NULL; encolar(&primero,&ultimo,10); encolar(&primero,&ultimo,20); encolar(&primero,&ultimo,30); printf("\n%d",desencolar(&primero,&ultimo)); printf("\n%d",desencolar(&primero,&ultimo)); printf("\n%d",desencolar(&primero,&ultimo)); system("pause"); return(0); } void encolar(tipoNodo **primero,tipoNodo **ultimo,int x){ /*Crear un nuevo nodo*/ tipoNodo *nodo_nuevo; nodo_nuevo=(tipoNodo*)malloc(sizeof(tipoNodo)); nodo_nuevo->valor=x; nodo_nuevo->siguiente=NULL; /*Si la cola no estaba vacía*/ if(*ultimo!=NULL){ (*ultimo)->siguiente=nodo_nuevo; } *ultimo=nodo_nuevo; /*Si la cola está vacía*/ if(*primero==NULL){ *primero=nodo_nuevo; } } int desencolar(tipoNodo **primero,tipoNodo **ultimo){ tipoNodo *nodo_aux; int x_aux; nodo_aux=*primero; /*Si la cola está vacía*/ if(nodo_aux==NULL){ //printf()... return(-1); } *primero=(*primero)->siguiente;//op_a //*primero=nodo_aux->siguiente;//op_b x_aux=nodo_aux->valor; /*Liberar memoria*/ free(nodo_aux); /*Si la cola ha quedado vacía...*/ if(*primero==NULL){ *ultimo=NULL; } return(x_aux); }