首页 > 分享 > 假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag=0和tag=1来区别在队头指针(front)和队尾指针(rear)相等时, 队列状态为“空”还是“满”。

假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag=0和tag=1来区别在队头指针(front)和队尾指针(rear)相等时, 队列状态为“空”还是“满”。

最新推荐文章于 2024-10-15 22:29:51 发布

Jxufe渣渣斯 于 2018-10-15 14:09:40 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

/*数据结构与算法-第三章栈和队列课后习题 *课本第85页3.7 *题目:假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag=0和tag=1来区别在队头指针(front)和队尾指针(rear)相等时, * 队列状态为"空"还是"满"。 * 试编写与此结构相应的插入(enqueue)和删除(dequeue)算法。 *编译环境:VC 6.0 */ #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define overflow -1 #define MAXSIZE 10 typedef int qelemType; int count=0; typedef struct {qelemType q[MAXSIZE];int tag;int head,rear; }sqqueue; void initQueue(sqqueue &queue)//队列初始化 {queue.head=0;queue.rear=0;queue.tag=0; } int enqueue(sqqueue &queue,qelemType e) {if(count==MAXSIZE)queue.tag=1;if(queue.tag==1 && queue.head==queue.rear)//即队列已满return ERROR;else{queue.q[queue.rear]=e;queue.rear=(queue.rear+1)%MAXSIZE;count++;}return OK; } int dequeue(sqqueue &queue,qelemType &e) {if(count==0)queue.tag=0;if(queue.tag==0 && queue.head==queue.rear)return ERROR;else{e=queue.q[queue.head];queue.head=(queue.head+1)%MAXSIZE;count--;}return OK; } int queuelen(sqqueue queue) {return (queue.rear-queue.head+MAXSIZE)%MAXSIZE; } int main() {sqqueue queue1;initQueue(queue1);int num;for(int i=12;i>=1;i--){printf("ATTENTION---Queue's length=%d,",queuelen(queue1));if(enqueue(queue1,i))printf("成功插入元素%d!n",i);else{printf("队列已满!n");break;}}printf("nn");for(int k=1;k<=14;k++){printf("ATTENTION---Queue's length=%d,",queuelen(queue1));if(dequeue(queue1,num))printf("成功删除元素%d!n",num);else{printf("队列已空!n");break;}}return 0; }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697

相关知识

浅谈Python数据结构(三)
给对象的小惊喜c#玫瑰花
PCB stm32根据光强调整led灯亮度
3012C语言
题解:樱花
花粥没有花
答题与解题(6)
Go语言全栈开发:结构体
【艺术漫插】那些与花有关的故事——TAG TRAUM
组队赛8:Journey to the “The World's Start” 二分+单调队列优化dp

网址: 假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag=0和tag=1来区别在队头指针(front)和队尾指针(rear)相等时, 队列状态为“空”还是“满”。 https://m.huajiangbk.com/newsview1095104.html

所属分类:花卉
上一篇: Android 存储学习之在外部
下一篇: String的存储方式