3.7 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点 假设以带头结点的循环链表表示队列, (注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法. 注意不设头指针),试编写相应的队列初始化 入队列和出队列的算法. 试编写相应的队列初始化、typedef struct queuenode { Datatype data; struct queuenode *next;}QueueNode; *next;}QueueNode; //以上是结点类型的定义 //以上是结点类型的定义 typedef struct {queuenode *rear;}LinkQueue; *rear;}LinkQueue; //只设一个指向队尾元素的指针 //只设一个指向队尾元素的指针 status InitQueue( LinkQueue *Q) { Q->rear=(QueueNode *) malloc (sizeof(QueueNode)); if (!Q->rear) exit(OVERFLOW); Q(!QQ->rear->next = Q->rear; >rearQ} int EmptyQueue( LinkQueue *Q) { if (Q->rear= =Q->rear->next) return 1; else return 0; } (Q=Q->rearvoid EnQueue( LinkQueue *Q, Datatype x) { QueueNode *p; p=(QueueNode *) malloc (sizeof(QueueNode)); if(!p) exit(OVERFLOW); p->data=x; p->next=NULL; pp->next=Q->rear->next; Q-rear->next=p; Q->rear=p; >next=Q->rearQ-rearQ} Datatype DeQueue( LinkQueue *Q) { Datatype x; QueueNode *p; if (Q->rear= =Q->rear->next) Error("Queue underflow"); (Q=Q->rearp=Q->rear->nextp=Q->rear->next->next; x=px=p->data; Q->rear->next->next=p->next; free(p); Q->rear->next->next=preturn x; }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第三章_栈和队列作业答案(9)在线全文阅读。
相关推荐: