首页 > 学院 > 开发设计 > 正文

Queue

2019-11-08 18:31:25
字体:
来源:转载
供稿:网友

Queue.h

#PRagma oncetemplate<class T>class queue {public: queue(); ~queue(); bool enqueue(const T); T dequeue(); bool empty() const; bool full() const;private: T* data; int head; int tail;};

Queue.cpp

#include"Queue.h"#include<iostream>const int N = 10;template<class T>queue<T>::queue():head(0),tail(0),data(new T[N]){}template<class T>queue<T>::~queue() { delete[] data;}template<class T>bool queue<T>::empty() const{ if (head == tail) return true; return false;}template<class T>bool queue<T>::full() const{ if (tail == (N - 1) && head == 0) { return true; } else if (head == tail + 1) { return true; } return false;}template<class T>bool queue<T>::enqueue(const T elem) { if (!full()) { data[tail] = elem; if (tail == N - 1) { tail = 0; } else { ++tail; } return true; } else { std::cout << "queue is full" << std::endl; return false; }}template<class T>T queue<T>::dequeue() { if (empty()) { std::cout << "queue is empty!" << std::endl; return T(); } else { return data[head++]; }}/*int main() { queue<int> text; text.enqueue(6); text.enqueue(7); text.enqueue(8); text.enqueue(9); std::cout << text.dequeue() << std::endl; std::cout << text.dequeue() << std::endl; std::cout << text.dequeue() << std::endl; std::cout << text.dequeue() << std::endl; return 0;}*/


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表