include #include //int enqueue(struct node *,struct node *); void display(); int main() { enqueue(); } typedef struct data { char *pStr; }Data; typedef struct node { Data item; char *pStr; struct node *pNext; }Node; typedef struct queue { Node *pHead; Node *pTail; }Queue; Node *pHead; Node *pTail; int enqueue(Queue *pQueue,Data newData) { Node *temp; char *pStr; pStr=(char *)malloc(20 *sizeof(char)); printf(\"Enter the node\"); scanf(\"%s\",temp->pStr); temp=(Node*)malloc(sizeof(Node)); temp->item=temp->pStr; temp->pNext=NULL; if(pTail==NULL) { pHead=temp; pTail=temp; } else { pTail->pNext=temp; pTail=temp; } return 1; } void display() { Node *ptr; if(pTail==NULL) printf(\"Queue is empty\ \"); else { ptr=pHead; printf(\"The elements of the queue are :\"); while(ptr!=NULL) { printf(\"%s\\t\",ptr->item); ptr=ptr->pNext; } } } Solution include #include //int enqueue(struct node *,struct node *); void display(); int main() { enqueue(); } typedef struct data { char *pStr; }Data; typedef struct node { Data item; char *pStr; struct node *pNext; }Node; typedef struct queue { Node *pHead; Node *pTail; }Queue; Node *pHead; Node *pTail; int enqueue(Queue *pQueue,Data newData) { Node *temp; char *pStr; pStr=(char *)malloc(20 *sizeof(char)); printf(\"Enter the node\"); scanf(\"%s\",temp->pStr); temp=(Node*)malloc(sizeof(Node)); temp->item=temp->pStr; temp->pNext=NULL; if(pTail==NULL) { pHead=temp; pTail=temp; } else { pTail->pNext=temp; pTail=temp; } return 1; } void display() { Node *ptr; if(pTail==NULL) printf(\"Queue is empty\ \"); else { ptr=pHead; printf(\"The elements of the queue are :\"); while(ptr!=NULL) { printf(\"%s\\t\",ptr->item); ptr=ptr->pNext; } } }.