连续存储结构的循环队列实现
来源:互联网 发布:vnr网络连接不畅 编辑:程序博客网 时间:2024/04/25 18:27
1.队列是一种删除只能在队头,插入只能在队尾的线性表,循环队列是为了克服“假溢出”而提出的一种对队列的改进,将队列看成一个首尾相接的环。连续存储结构的循环队列是通过数组实现的。
2.操作:先进先出
3.初始化(空队列):pront = tail =conut = 0;
4.非空队列中,pront指向对头元素,tail指向队尾元素的下一个单元。
5.空队列和满队列都满足pront = tail,所以通过计数器count来统计元素个数。
6.队列结构体
struct queue{ datatype data[MAXSIZE]; int front; int tail; int count;};
7.队列的基本运算实现代码
#include<iostream>using namespace std;typedef int datatype;#define MAXSIZE 100struct queue{ datatype data[MAXSIZE]; int front; int tail; int count;};// init queuevoid initqueue(queue *s){ s->front = s->tail = s->count = 0;}// in queuequeue * inqueue(queue *s, datatype x){ if(s->count ==MAXSIZE) return NULL; // overout s->data[s->tail] = x; s->tail = s->tail + 1; s->count++;}// creat queuequeue *creatqueue(int n){ queue *p = new queue; initqueue(p); for(int i = 0; i < n; i++) { datatype x; cin >> x; inqueue(p, x); } return p;}// out queueint outqueue(queue *s, datatype &x){ if(s->front == s->tail) return -1; x = s->data[s->front]; s->front = s->front + 1; s->count--; return 0;}// print queueint show(queue *s){ if(s->front == s->tail) return -1; //empty queue while(s->front != s->tail) { datatype y; outqueue(s, y); cout << y << ends; } cout << endl; return 0;}int main(){ queue *q = creatqueue(5); show(q); system("pause"); return 0;}
0 0
- 连续存储结构的循环队列实现
- 队列的顺序存储结构---循环队列
- 队列的顺序存储结构(循环队列)
- 循环队列的顺序存储结构及实现
- 循环队列操作的实现-顺序存储结构
- 队列的顺序存储结构——循环队列 图解和代码实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 数据结构:队列的顺序存储结构(循环队列)
- 数据结构:队列的顺序存储结构(循环队列)
- 队列的顺序存储结构之循环队列
- 循环队列-链式存储结构-c语言实现
- 数据结构——循环队列存储结构以及实现
- 循环队列Queue--使用顺序存储结构(数组)实现
- 循环队列Queue–使用链式存储结构实现
- C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
- 循环队列的链式存储实现
- SqQueue循环队列的 顺序存储实现
- OCP 1Z0 053 73
- Externally Stored Fields in InnoDB
- AS3.0做游戏的360度摇杆
- halcon 中的药片检查check_blister实例注释
- 学会分析性能瓶颈,从夯实基础做起
- 连续存储结构的循环队列实现
- 我是最棒的,我一定会成功!
- 如何访问GOOGLE
- Qwt源码解读之平移操作类——QwtPanner and QwtPlotPanner
- 图像旋转算法的实现
- 机器学习中的数学(1)-回归和梯度下降
- Kia's Calculation(贪心)
- sikuli轻松完成新版IPC字幕设置的自动化测试
- Ubuntu中完全卸载Nginx