typedef struct tnodo *pnodo; typedef struct tnodo { int dato; pnodo sig; }; typedef struct tcola{ pnodo inicio; int cont; }; void iniciar_cola(tcola &lista){ lista.inicio=NULL; lista.cont=0; } void crear_nodo(pnodo &nuevo, int valor){ nuevo = new tnodo; if(nuevo != NULL){ nuevo->dato=valor; nuevo->sig=NULL; }else cout<<"MEMORIA INSUFICIENTE"<sig=lista.inicio; lista.inicio=nuevo; } lista.cont++; } } bool cola_vacia(tcola lista){ return lista.cont==0; } int quitar_cola(tcola &lista){ //por final pnodo aux,i; int eliminado; if(lista.inicio==NULL){//cola_vacia(lista)==true aux=NULL; eliminado=-1; }else{ if(lista.inicio->sig==NULL){ aux=lista.inicio; eliminado=aux->dato; lista.inicio=NULL; }else{ for(i=lista.inicio;(i->sig)->sig != NULL;i=i->sig); aux=i->sig; eliminado=aux->dato; i->sig=NULL; } lista.cont--; } delete(aux); return eliminado; } int consultar_primero(tcola lista){ int valor; pnodo i; if(cola_vacia(lista)!=true){ for(i=lista.inicio;i->sig!=NULL;i=i->sig); valor=i->dato; }else valor=-1; return valor; } int consultar_ultimo(tcola lista){ int valor; if(cola_vacia(lista)!=true) valor=lista.inicio->dato; else valor=-1; return valor; }