栈
先进后出(FILO)的数据结构
栈的操作:
1. push(x):插入数据
2. pop(x):弹出数据
3. top(x):获得栈顶数据
4. is_empty():判断栈是否为空
5. is_full():判断栈是否已满
int s[maxn];
int top=0;
bool is_empty(){
return top==0;
}
bool is_full(){
return top>=maxn-1;
}
void push(int x){
if(is_full()) {cout<<"overflow"<<endl;return;}
top++;
s[top]=x;
}
int top(){
return s[top];
}
int pop(){
if(is_empty()) {cout<<"empty"<<endl;return -1;}
top--;
}
队列
先进先出(FIFO)的数据结构
队列的操作:
1. push(x):插入数据
2. pop(x):弹出数据
3. front(x):获得队列头部数据
4. is_empty():判断队列是否为空
5. is_full():判断队列是否已满
int q[maxn];
int head=0;
int tail=0;
bool is_empty(){
return head==tail;
}
bool is_full(){
return head==(tail+1)%maxn;
}
void push(int x){
if(is_full()) {cout<<"overflow"<<endl;return;}
p[tail]=x;
tail+1==maxn?tail=0:tail++;
}
int front(){
return p[head];
}
void pop(){
if(is_empty()) {cout<<"empty"<<endl;return -1;}
head+1==maxn?head=0:head++;
}