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; }
第三章_栈和队列作业答案(9)
2020-12-24 20:18
第三章_栈和队列作业答案(9).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!