队列(queue) 的特点:
先进先出
数组实现:
array: 存放元素
i: 下一个入队存放元素位置的下标
j: 下一个出队删除元素位置的下表
size: 队列的最大长度
num: 队列中当前元素个数
#include <iostream>
using namespace std;
template<typename T>
class queue{
public:
queue(int size=0){
array = new T[size];
i = 0;
j = 0;
num = 0;
this->size = size;
}
void push(T val){
if(num < size && i < size - 1){
array[i] = val;
i++;
num++;
}else if(num < size && i == size - 1){
array[0] = val;
i = 1;
}
}
void pop(){
if(j == size - 1){
j = 0;
}else{
j++;
}
num--;
}
int size(){
return num;
}
int capacity(){
return size;
}
T front(){
return array[j];
}
~queue(){
delete[] array;
}
protected:
T *array;
int i;
int j;
int size;
int num;
};
int main(){
queue<int> q(20);
q.push(21);
cout << q.front() << endl;
q.push(31);
cout << q.front() << endl;
q.push(41);
q.pop();
cout << q.front() << endl;
return 0;
}