双端队列
来源:互联网 发布:简谱制谱mac 编辑:程序博客网 时间:2024/06/05 08:01
今天为了写计算器,还特地写了一个双端队列,目前功能测试正常
//deque.h#define MAXSIZE 10000#define ERROR -1template<typename DATATYPE>class deque{private:DATATYPE * DEQUE;int pfront,prear;public:deque();~deque();bool pop_back();bool pop_front();bool push_back(DATATYPE);bool push_front(DATATYPE);DATATYPE front();DATATYPE back();bool empty();void show();};template<typename DATATYPE> deque<DATATYPE>::deque(){DEQUE=new DATATYPE[MAXSIZE];pfront=0,prear=1;}template<typename DATATYPE>deque<DATATYPE>::~deque(){delete DEQUE;}template<typename DATATYPE>bool deque<DATATYPE>::pop_front(){if(empty())return false;pfront=(pfront+1)%MAXSIZE;return true;}template<typename DATATYPE>bool deque<DATATYPE>::pop_back(){if(empty())return false;prear=(prear+MAXSIZE-1)%MAXSIZE;return true;}template<typename DATATYPE>bool deque<DATATYPE>::push_front(DATATYPE T){if( (pfront+MAXSIZE-1)%MAXSIZE==prear)return false;DEQUE[pfront]=T;pfront=(pfront+MAXSIZE-1)%MAXSIZE;return true;}template<typename DATATYPE>bool deque<DATATYPE>::push_back(DATATYPE T){if((prear+1)%MAXSIZE==pfront)return false;DEQUE[prear]=T;prear=(prear+1)%MAXSIZE;return true;}template<typename DATATYPE>DATATYPE deque<DATATYPE>::front(){if(!empty())return DEQUE[(pfront+1)%MAXSIZE];else throw ERROR;}template<typename DATATYPE>DATATYPE deque<DATATYPE>::back(){if(!empty())return DEQUE[(prear+MAXSIZE-1)%MAXSIZE];else throw ERROR;}template<typename DATATYPE>bool deque<DATATYPE>::empty(){if((pfront+1)%MAXSIZE==prear)return true;return false;}template<typename DATATYPE> void deque<DATATYPE>::show(){int p=(pfront+1)%MAXSIZE;while(p%MAXSIZE!=prear){std::cout<<DEQUE[p]<<" ";p=(p+1)%MAXSIZE;}}
- 队列,优先队列,双端队列
- 队列、双端队列与优先队列
- Java 模拟队列(一般队列、双端队列、优先级队列)
- 栈,队列,双端队列
- 队列与双端队列
- 数据结构(队列):双端队列
- [zz]栈和队列,双端队列
- 队列的应用:双端队列
- 队列Queue、双端队列Deque
- nyoj1117 鸡蛋队列 (双端队列,deque)
- Java队列Queue、双端队列Deque
- 四.队列与双端队列
- java队列Queue、双端队列Deque
- 队列Queue、双端队列Deque
- 队列Queue、双端队列Deque
- 单调栈、双端队列、单调队列
- java-队列,双端队列、栈
- 栈和队列、双端队列
- spring aop的一些概念
- 用css3实现漂亮便签样式
- 复合索引文件格式cfs
- 【转】指针详解
- *** glibc detected *** ./Simple_Sound_Recording: free(): corrupted unsorted chunks: 0x0001c8a0 ***
- 双端队列
- 面向接口编程
- Smack类库详细介绍
- servlet/jquery/json 防止乱码
- Linux C++中获取指定pid、tid的CPU与内存占用信息
- sqlserver日期函数
- MAC OSX Lion安装JavaHL
- 从2-3-4树谈到Red-Black Tree(红黑树)
- 获取UIView的UIViewController