一个功能简单的队列模板
2012-11-10 21:50
369 查看
这个代码写的时间比较短,也就是半个小时,测试的也不多,但是有一定的参考价值。
#include <iostream> using namespace std; template<class T> class Queue { private: T *queuehead; int maxsize; int front; int rear; public: Queue(int max=10); ~Queue(); bool Isempty(); bool Isfull(); bool addin(T & add); bool pop(T & out); void show(); }; template<class T> Queue<T>::Queue(int max) { if(max>0) maxsize=max; else maxsize=10; queuehead=new T [max]; if(queuehead==NULL) abort(); front=0; rear=0; } template<class T> Queue<T>::~Queue() { delete [] queuehead; } template<class T> bool Queue<T>::Isempty() { if(front==rear) return true; else return false; } template<class T> bool Queue<T>::Isfull() { if((rear+1)%maxsize==front) return true; else return false; } template<class T> bool Queue<T>::addin(T & add) { if(!Isfull()) { queuehead[rear%=maxsize]=add; rear++; return true; } else return false; } template<class T> bool Queue<T>::pop(T & out) { if(!Isempty()) { out=queuehead[front%=maxsize]; front++; return true; } else return false; } template<class T> void Queue<T>::show() { cout<<"Data in line:\n"; for(int i=0;i<maxsize;i++) cout<<queuehead[i]<<ends; cout<<endl; cout<<"rear:"<<rear<<endl; cout<<"front:"<<front<<endl; } int main() { cout << "Hello world!" << endl; int a; Queue<int> temp1; cin>>a; while(!cin.fail()) { temp1.addin(a); cin>>a; } while(!temp1.Isempty()) { temp1.pop(a); cout<<a<<ends; } cout<<endl; temp1.show(); return 0; }
相关文章推荐
- .net c# 一个简单但是功能强大动态模板引擎
- 一个功能简单的二叉树模板
- .net c# 一个简单但是功能强大动态模板引擎(一)
- 栈和队列面试题之--实现一个有getMin功能的栈
- 一个功能齐全的CMS管理系统模板,内置6套皮肤,已经转化为标准的Eclipse项目,直接导入即可
- 用两个栈实现一个队列:实现出队列和入队列功能,用两个队列实现一个栈
- C/C++之用两个栈实现一个队列的功能
- 请实现一个队列,既可以存放整数,又可以存放字符串。简单的说,队列是一种数据结构,按照先进先出的顺序管理进、出队列的元素
- 一个简单的优酷视频链接探测与分享功能
- 一个最简单的例子,清楚说明回调函数的作用和强大功能
- 一个简单的jQuery计算器实现了连续计算功能
- 写了一个最简单的 js 模板引擎,直接贴代码
- 简单却常用的一个SQL功能:1句SQL语句返回多个字段值到指定变量
- ios-day20-01(使用UIWebView实现一个简单功能的浏览器)
- 面试系列7--用两个栈实现一个队列的功能
- 一个简单的消息队列类(封装system V消息队列)
- JS 前端框架7 一个简单的require功能
- SSM框架的一个简单登录模块(包含注销功能)
- php初探: 一个简单的mysql数据库分页的程序模板
- 栈和队列简单的STL模板