用数组模拟队列:
用hh表示队头,tt表示队尾
const int maxSize = 1010;
int q[maxSize], hh = 0, tt = -1;
插入元素
void push(int x){
if(tt == maxSize - 1) cout << "数组已满" << endl;
else q[++tt] = x;
}
获得队头元素以及弹出队头
int front(){
return q[hh];
}
void pop(){
hh ++ ;
}
判断队列是否为空
bool empty(){
return hh > tt;
}
双端队列:
在头部插入元素
void push_head(int x){
q[--hh] = x;
}
获得尾部元素以及弹出队尾
int back(){
return q[tt];
}
void pop_back(){
tt -- ;
}
模拟栈:
用tt表示栈顶
const int maxnSize = 1010;
int s[maxSize], tt = -1;
压栈
void push(int x){
if(tt == maxSize - 1) cout << "栈已满" << endl;
s[++tt] = x;
}
获得栈顶元素与出栈
int top(){
return s[tt];
}
void pop(){
tt -- ;
}
判断栈是否为空
bool empty(){
return tt < 0;
}