1 栈
1.1 栈的基本概念
- 栈:受约束的线性表,只允许栈顶元素入栈和出栈。
1.2 栈的实现
- 存储:顺序栈 链式栈
操作:
入栈:先判栈满,elements[++top] = x;
出栈:先判栈空,x = elements[top—];
判栈空:top=-1;
判栈满:top = maxsize - 1;双栈共享一个栈空间
- 两个栈共享一个数组空间V[maxSize]
- 设立栈顶指针数组 t[2] 和栈底指针数组 b[2]
- 初始 t[0] = b[0] = -1, t[1] = b[1] = maxSize
- 栈满条件:t[0]+1 == t[1] //栈顶指针相遇
- 栈空条件:t[0] = b[0]或t[1] = b[1] //退到栈底
- t[i]和b[i]分别指示第 i个栈的栈顶与栈底
1.3 栈的应用
1.3.1 括号匹配
1.3.2 表达式求值
- 算术表达式的3种形式:前缀式、中缀式、后缀式