数据结构(十一)循环队列的基本操作----6个基本操作
来源:互联网 发布:淘宝店铺运营数据分析 编辑:程序博客网 时间:2024/06/03 10:40
//顺序队列存在一个问题 ---假溢出现象,为了解决这个问题,提出了循环队列//循环队列中存在队空和队满条件一样的情况,因此提出了牺牲一个空间的方法 //循环队列的基本操作 #include <iostream>using namespace std;#define MAXSIZE 5//队列的结构体struct Node{int *base;int front;int rear;}; //队列的初始化操作void initQueue(struct Node &Q){ Q.base = new int[MAXSIZE]; if(Q.base == NULL) { cout<<"地址分配失败\n"; exit(1); } Q.front = Q.rear=0;}//队空的判断int isEmpty(struct Node Q){if(Q.front == Q.rear){return 1; } else{return 0;}} //队满的判断int isFull(struct Node Q){if((Q.rear+1)%MAXSIZE==Q.front){return 1;}else{return 0; }} //入队列操作void Enqueue(struct Node &Q){int e;cout<<"请输入你要入队的数据:\n";cin>>e;Q.base[Q.rear] = e;Q.rear=(Q.rear+1)%MAXSIZE;} //出队列的操作 void inQueue(struct Node &Q,int &e){e = Q.base[Q.front];Q.front = (Q.front +1)%MAXSIZE;}//队列的实际长度int length(struct Node Q){int len;len = (Q.rear-Q.front+MAXSIZE)%MAXSIZE;return len;}int main(){struct Node Q;initQueue(Q);for(int i=0;i<4;i++){if(isFull(Q)){cout<<"队列已经满了\n";break;}Enqueue(Q);}int e;for(int i=0;i<4;i++){inQueue(Q,e);cout<<e<<" ";}if(isEmpty(Q)){cout<<"队列为空\n";exit(1);}return 0;}
0 0
- 数据结构(十一)循环队列的基本操作----6个基本操作
- 数据结构 循环队列的基本操作
- 数据结构-循环队列的基本实现操作
- 数据结构-循环队列的基本操作
- 数据结构循环队列的基本操作(C语言)
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- python设计模式之享元模式
- 操作系统算法 之 进程的创建与撤销
- 100. Same Tree
- FFmpeg获取视频帧率fps,tbr
- php集成环境和自己配置的区别,php集成环境、php绿色集成环境、php独立安装版环境这三者的区别
- 数据结构(十一)循环队列的基本操作----6个基本操作
- python设计模式之Builder模式
- python3实现的web端json通信协议
- JAVA 注解的几大作用及使用方法详解
- 图的广度优先搜索
- 给双指针申请内存空间;
- matlab之原始处理图像几何变换
- jmq_0000的专栏,有Android驱动的部分
- App产品设计中,最容易忽视的问题有哪些?