目录
一.栈
1.栈的认识
栈是一种操作受到了限制后进先出(LIFO)的线性表,插入删除全在一端
如上图,栈就像一个桶先放进去的东西就被压在最底下也就是图中的栈底 (bottom),后放进去的东西就在上面栈顶(top)栈的主要特点是“后进先出”,即后进栈的元素先出栈。栈也称为后进先出表。
2.栈的实现与操作
定义一个栈stack
int stack[MAXN]//开辟栈所需要的数组空间
int top;//栈顶指针
操作一:将一个元素压入栈中
void push(int x){//压栈
stack[++top]=x;
}
操作二:将栈顶元素弹出
void pop(){//弹出栈顶元素
top--;
}
操作三:查询栈顶元素
int top(){//查询栈顶元素
return stack[top];
}
操作四:查询栈内元素个数
int size(){//查询栈内元素个数
return top;
}
操作五:判断栈是否为空
bool empty(){//判断栈是否为空
return top==0?1:0;
}
3.STL中的栈
定义一个栈stack
stack<int> s;//定义一个int类型的栈s
操作一:将一个元素压入栈中
s.push(x);//将一个元素x压入栈中
操作二:将栈顶元素弹出
s.pop();//弹出栈顶元素
操作三:查询栈顶元素
s.top();//查询栈顶元素
操作四:查询栈内元素个数
s.size();//查询栈内元素个数
操作五:判断栈是否为空
s.empty()//判断栈是否为空