📄 queue.h
字号:
// queue implemented as an array
// 课本上的,用的是first和last
#ifndef ARRAY_QUEUE
#define ARRAY_QUEUE
#include<iostream.h>
template<class T, int size = 50>
class ArrayQueue {
public:
ArrayQueue() {
first = last = -1; //初始化,队列为空
}
void enqueue(T);
bool dequeue(T & el);
bool isFull() {
return first == 0 && last == size-1 || first == last + 1;
}
bool isEmpty() {
return first == -1;
}
private:
int first, last;
T storage[size];
};
template<class T, int size>
void ArrayQueue<T,size>::enqueue(T el) {
if (!isFull())
if (last == size-1 || last == -1) {
storage[0] = el;
last = 0;
if (first == -1)
first = 0;
}
else storage[++last] = el;
else cout << "Full queue.\n";
}
template<class T, int size>
bool ArrayQueue<T,size>::dequeue(T & el) {
if(isEmpty())
return 0;
el = storage[first];
if (first == last)
last = first = -1;
else
first=(first+1)%size;
/* 这个也对,替换else部分,但是比较繁琐
else if (first == size-1)
first = 0;
else first++;
*/
return 1;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -