队列
来源:互联网 发布:温州公安网络 编辑:程序博客网 时间:2024/06/06 01:15
数组实现:
#include <iostream>using namespace std;typedef int T;class Queue{T a[5];int b, n;//队首位置和有效元素个数public:Queue():b(0),n(0){}Queue& push(const T& d){if(full()) throw "满";a[(b+n++)%5] = d;return *this;}T pop(){if(empty()) throw "空";--n;return a[b++%5];}const T& front()const{return a[b%5];}const T& back()const{return a[(b+n-1)%5];}int size()const{return n;}void clear(){b=0, n=0;}bool empty()const{return n==0;}bool full()const{return n==5;}};int main(){Queue q;try{q.push(1).push(2).push(3);q.push(4).push(5);cout << q.pop() << endl;cout << q.pop() << endl;q.push(6).push(7).push(8);}catch(const char* e){cout << "异常:" << e << endl;}while(!q.empty())cout << q.pop() << endl;}
链表实现:
#include <iostream>using namespace std;typedef int T;#include "01list.h"class Queue{List l;public:Queue& push(const T& d){l.push_back(d);return *this;}T pop(){T t=front();l.erase(0);return t;}const T& front()const{return l.front();}const T& back()const{return l.back();}int size()const{return l.size();}void clear(){l.clear();}bool empty()const{return l.empty();}bool full()const{return false;}};int main(){Queue q;q.push(1).push(2).push(3);q.push(4).push(5);cout << q.pop() << endl;cout << q.pop() << endl;q.push(6).push(7).push(8);while(!q.empty())cout << q.pop() << endl;}
0 0
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- 队列
- PB动态报表格式自由定义的实现
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 淘宝api的简单调用
- Cygwin安装
- 前端开发人员必须熟悉的10个CSS3属性
- 队列
- Android自定义Iphone风格的圆角边框开关按钮
- 菜鸟学JS(三)——自动隐藏的悬浮框
- BUPT OJ102 最远距离
- Jetty 的工作原理以及与 Tomcat 的比较
- 跟一下wpa_supplicant(1) 初始化
- 我最近在干什么
- OpenGL: GLUT提供的9种实体对象
- 浅析Android MediaProvider之一