博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列的循环队列
阅读量:4564 次
发布时间:2019-06-08

本文共 1273 字,大约阅读时间需要 4 分钟。

 

 

 

先附上C++下的代码

1 #include 
2 #include
3 #define MAXSIZE 100 4 5 using namespace std; 6 7 typedef struct{ 8 int *base; 9 int front;10 int rear;11 }SqQueue;12 int InitQueue(SqQueue &Q,int n){
//初始化队列13 int i;14 Q.base = (int *)malloc(MAXSIZE * sizeof(int));15 if(!Q.base) exit(-1);16 Q.front=0;17 Q.rear=0;18 if(n==0)return -1;19 for(i=0;i
>Q.base[i];21 Q.rear++;22 }23 return 0;24 }25 26 int EnQueue(SqQueue &Q, int e){
//入队27 if((Q.rear+1)%MAXSIZE==Q.front) exit(-1);28 Q.base[Q.rear]=e;29 Q.rear=(Q.rear+1)%MAXSIZE;30 return 0;31 }32 33 int OutQueue(SqQueue &Q,int &e){
//出队34 if(Q.front==Q.rear) exit(-1);35 e=Q.base[Q.front];36 Q.front=(Q.front+1)%MAXSIZE;37 return 0;38 }39 40 int OutputQueue(SqQueue Q){
//输出队列中的元素41 if(Q.front==Q.rear) exit(-1);42 int p;43 p=Q.front;44 while(p!=Q.rear){45 cout<
<
Here!Look,Look

 

  循环队列中最难也是最妙的操作就是,将实际线性的顺序存储空间以代码实现令人产生幻觉(其实就是人类自己想像)的循环队列的效果......

  

  通过一个求余队列长度(%MAXSIZE),达到了每次超过队列长度就循环至队头开始赋值,直至队列已满,同时舍弃一个空间来判断队列是否为满。

本文rear是指向尾号元素的下一位,当(Q.rear+1)%MAXSIZE=Q.front时,队满。

 

转载于:https://www.cnblogs.com/wssblogs/p/7692356.html

你可能感兴趣的文章
jquery操作select(增加,删除,清空)
查看>>
Sublimetext3安装Emmet插件步骤
查看>>
MySQL配置参数
查看>>
全面理解Java内存模型
查看>>
A - Mike and palindrome
查看>>
DOTween教程
查看>>
java web中java和python混合使用
查看>>
创建学员类和教员类
查看>>
Cookie和Session的作用和工作原理
查看>>
字符串操作
查看>>
Visual Studio中改变environment 的布局和显示风格
查看>>
2016-XCTF Final-Richman
查看>>
文件下载
查看>>
extjs grid renderer用法
查看>>
vue 如何在循环中绑定v-model
查看>>
shell脚本
查看>>
[代码笔记]JS保持函数单一职责,灵活组合
查看>>
cmd 重定向
查看>>
【IOS开发】如何画1像素的线
查看>>
【计算机视觉】双目测距(五)--匹配算法对比
查看>>