定长数组
一种方法是使用定长的数组,如果不是循环队列的话,这个数组需要开足够长度。
class MyQueue {
private:
int q[10000],start=0,end=0;
public:
int front() { //返回队首元素
if(start==end) return -1; //队列空时返回-1
return q[start];
}
void push(int value) { //入队
q[end++]=value;
}
int pop(){ //出队
if(start==end) return -1;
return q[start++];
}
};
动态数组
使用动态数组可以借用容器vector实现
class MyQueue{
private:
vector<int> q;
int start;
public:
bool empty(){
return start>=q.size();
}
int front(){
if(q.empty()) return -1;
return q[start];
}
void push(int val){
q.push_back(val);
}
bool pop(){
if(q.empty()) return false;
start++;
return true;
}
};