队列(数组形式)实现_c++
来源:互联网 发布:大数据金融行业运用 编辑:程序博客网 时间:2024/06/05 20:34
template<class T> class Queue{friend ostream& operator<< <T> (ostream&, const Queue<T>&);public:Queue(int maxcount = 10):head(0),tail(0), count(maxcount){data = new T[count]();}Queue(const Queue& rhs):head(rhs.head), tail(rhs.tail), count(rhs.count){data = new T[count]();memcpy(data, rhs.data, sizeof(T)*count);}Queue& operator=(const Queue& rhs){if (this == &rhs){return *this;}head = rhs.head;tail = rhs.tail;count = rhs.count;delete []data;data = new T[count]();memcpy(data, rhs.data, sizeof(T)*count);return *this;}~Queue(){delete []data;}T& Front() const;void Push(const T&);void Pop();size_t Size() const;inline bool Empty() const;inline bool Full() const;private:int head;int tail;int count;T* data;};template<class T> T& Queue<T>::Front() const{if (Empty()){exit(1);}return data[head];}template<class T> void Queue<T>::Push(const T& val){if (!Full()){data[tail] = val;tail = (tail+1)%count;}}template<class T> void Queue<T>::Pop(){if (!Empty()){head = (head+1)%count;}}template<class T> size_t Queue<T>::Size() const{return (tail-head+count)%count;}template<class T> bool Queue<T>::Empty() const{return head == tail;}template<class T> bool Queue<T>::Full() const{return (tail+1)%count == head;}template<class T> ostream& operator<<(ostream& os, const Queue<T>& q){if (!q.Empty()){for (int i = q.head; i != q.tail; i = (i+1)%q.count){os<<q.data[i]<<' ';}}return os;}
0 0
- 队列(数组形式)实现_c++
- 队列(链表形式)实现_c++
- 栈(数组形式)实现_c++
- 数据结构C语言实现之循环队列----数组形式---简单化
- 队列(数组实现)
- 队列(数组实现)
- 队列(2)----用数组实现队列
- 队列的数组实现(循环队列)
- 队列的实现(数组)
- Java队列(数组实现)
- 嵌入式DTU实际用到的数组队列形式共享内存实现结果
- 嵌入式DTU实际用到的数组队列形式共享内存实现结果
- 数组形式实现邻接表
- 用数组实现队列(C实现)
- 二分法(数组形式)
- 队列----循环数组实现队列
- 队列的顺序表示形式和实现
- 几种形式队列的实现
- Linux安装vsftp
- 数据库操作2
- xe6 IDE 新功能 新变化
- 移动互联网时代: 妈,我回不去了
- 【android初学日志】Test run failed: Test run incomplete. Expected 1 tests, received 0<二>
- 队列(数组形式)实现_c++
- 图像处理的傅里叶变换
- NYOJ 993 How many integers can you find
- ARM指令 LDR 和 ADR的一些区别
- POJ1005
- 链式栈的表示和实现
- 用MSP430G2LaunchPad仿真器来仿真MSP430F5529
- android自定义控件----折线图报表
- 管理DBA的工作内容和责任