Lo que pasa es que tengo este codigo "Colas en C" Que ya logre implementar.
Pero ahora, necesito implementarlo para que en vez de manejar caracteres, maneje cadenas, ya le he intentado cambiando declarando los datos en cadenas, cambiando %c por %s, con gets, con puts, pero no me arroja los resultados correctos, por favor ayúdenme gracias de antemano.
Código
#include <stdio.h> #include <stdlib.h> struct queueNode { char data; struct queueNode *nextP; }; typedef struct queueNode QUEUENODE; typedef QUEUENODE *QUEUENODEP; void printfQUEUE(QUEUENODEP); int isEmpty(QUEUENODEP); char dequeue(QUEUENODEP*, QUEUENODEP*); void enqueue(QUEUENODEP*, QUEUENODEP*, char); void menu (void); int main() { QUEUENODEP headP=NULL,tailP=NULL; int choice; char item; menu(); while(choice!=3) { switch(choice) { case 1: enqueue(&headP,&tailP,item); printfQUEUE(headP); break; case 2: if(!isEmpty(headP)) { item=dequeue(&headP,&tailP); } printfQUEUE(headP); break; } } return 0; } /*Definicion de funciones*/ void menu(void) { } void enqueue(QUEUENODEP *headP,QUEUENODEP *tailP,char value){ QUEUENODEP newP; if(newP != NULL){ newP->data = value; newP-> nextP = NULL; if(isEmpty(*headP)) *headP=newP; else (*tailP)->nextP=newP; *tailP = newP; } else } char dequeue(QUEUENODEP *headP, QUEUENODEP *tailP) { char value; QUEUENODEP temp; value=(*headP)->data; temp=*headP; *headP=(*headP)->nextP; if(*headP==NULL) *tailP=NULL; return value; } int isEmpty(QUEUENODEP headP) { return headP==NULL; } void printfQUEUE(QUEUENODEP currentP) { if(currentP==NULL) { } else { while(currentP!=NULL) { currentP=currentP->nextP; } } }