
3.1 定义
- 栈是限定仅在表尾进行插入和删除操作的线性表
3.2 基本操作
| 操作 | 描述 |
|---|---|
| InitStack(&S) | 初始化栈S,构造一个空栈 |
| DestroyStack(&S) | 若栈存在,则销毁它 |
| Push(&S,x) | 若栈S存在,插入新元素x到栈S中并成为栈顶元素 |
| Pop(&S,&x) | 删除栈S中栈顶元素,并用x返回其值 |
| GetTop(S,&x) | 返回栈S中栈顶元素,不修改栈顶指针 |
| StackEmpty(S) | 若栈为空,返回true,否则返回false |
- (常考:给你一个出栈序列,问你能不能通过入栈操作得到这个出栈序列)共有卡特兰数种出栈序列:
3.3 顺序栈

- 顺序栈的实现
1 |
|
- 共享栈

3.4 链栈

- 链栈的实现
1 |