循环队列ADT实现(C++)2018.3.15
2018-03-15 15:24
169 查看
#include <iostream> using namespace std; /**< 循环队列ADT */ /**< 定义结点 */ struct QNode { int data; int cur; }; /**< 循环队列结构体 */ struct Queue { struct QNode* base; int Front; int Rear; int Len; }; /**< 初始化循环队列 */ void Init_Queue(struct Queue &q) { q.base=new QNode[100]; q.Front=q.Rear=q.Len=0; } /**< 销毁队列 */ void Destroy_Queue(struct Queue &q) { delete q.base; } /**< 队列判空 */ bool Is_Empty(struct Queue &q) { if(q.Len==0) return true; else return false; } /**< 队列判满 */ bool Is_Full(struct Queue &q) { if(q.Len==100) return true; else return false; } /**< 入队 */ void En_queue(struct Queue &q,int Val) { if(!Is_Full(q)) { q.base[q.Rear%100].data=Val; q.Rear=(q.Rear+1)%100; q.Len++; } else cout<<"队满"<<endl; } /**< 出队 */ int De_Queue(struct Queue &q,int &Val) { if(!Is_Empty(q)) { Val=q.base[q.Front].data; q.Front=(q.Front+1)%100; q.Len--; cout<<"队首元素:"<<Val<<endl; return Val; } else cout<<"队空"<<endl; return 0; } /**< 测试代码 */ int main() { int n; struct Queue q; Init_Queue(q); En_queue(q,1); En_queue(q,2); En_queue(q,3); En_queue(q,4); De_Queue(q,n); De_Queue(q,n); De_Queue(q,n); De_Queue(q,n); De_Queue(q,n); cout << "Hello world!" << endl; return 0; }今天还是比较开心的,一次调试就成功了,=。=也可能因为简单吧
相关文章推荐
- 数据结构-->(循环)队列 【队列的顺序实现】ADT
- 以循环顺序表实现的队列ADT(C语言版)
- 数据结构之——基于数组实现的循环队列
- 如何实现一个循环队列
- 如何实现一个循环队列
- 数据结构-->队列的链式实现 ADT
- 循环队列在libnet中的实现
- 无锁队列的实现-循环数组
- 采用循环队列或链队列实现病人看病的模拟程序
- c++ 数据结构 用循环队列实现杨辉三角形的打印
- 数据结构(循环队列子系统:c实现)
- c语言:循环队列的实现
- 循环队列的实现
- 循环队列———队列的顺序表示和实现
- 队列实现循环缓冲区
- Python 使用循环数组实现队列 (基于class, 包含迭代器)
- 【C++数据结构】数组循环队列的实现
- 数据结构(三)——队列及实现、循环队列实现
- 面试宝典中用C++实现循环队列
- PHP实现循环队列(顺序结构)