栈Stack
栈(Stack):后入先出(LIFO,Last In First Out)
头文件< stack >
栈的声明
stack< type > s
stack<int>s;
stack<float>s;
stack<char>s;
//......
栈的操作
s.push(x); 把x放到栈顶(增)
s.top(); 返回栈顶元素,不会删除
s.pop(); 删除栈顶元素,但不会返回(删)
s.size(); 返回栈中元素个数
s.empty(); 返回栈是否为空
s1=s2; 赋值
用数组实现栈
initialize()
top=0;
isEmpty()
return top==0;
isFull()
return top>=MAX-1;
push()
if isFull() 上溢
top++;
S[top]=x;
pop()
if isEmpty() 下溢
top--;
return S[top+1];
int st[N];
// 这里使用 st[0] (即 *st) 代表栈中元素数量,同时也是栈顶下标
// 压栈 :
st[++*st] = var1;
// 取栈顶 :
int u = st[*st];
// 弹栈 :注意越界问题, *st == 0 时不能继续弹出
if (*st) --*st;
// 清空栈
*st = 0;