#include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node *pnext; }node,*pnode; typedef struct queue{ pnode front; pnode rear; }queue,*pqueue; void initQueue(pqueue ); void insertQueue(pqueue ,int); void deleteQueue(pqueue); void traverseQueue(pqueue); int main() { pqueue qu = (pqueue)malloc(10*sizeof(queue)); initQueue(qu); insertQueue(qu,1); insertQueue(qu,2); traverseQueue(qu); } void initQueue(pqueue qu){ qu->front = qu->rear = (pnode)malloc(sizeof(node)); if(NULL == qu->front){ puts("error!"); exit(-1); } } void insertQueue(pqueue qu,int idata){ pnode pnew = (pnode)malloc(sizeof(node)); if(NULL == pnew){ puts("error!"); exit(-1); } pnew->data = idata; pnew->pnext = NULL; qu->rear->pnext = pnew; qu->rear = pnew; } void deleteQueue(pqueue qu){ qu->front = qu->front->pnext; } void traverseQueue(pqueue qu){ pnode p = qu->front; while(qu->rear == p){ printf("%d ",p->data); p = p->pnext; } }