跳到主要内容

3.1 栈 Stack

[!info] 基础概念 相关提炼内容见 stack。

栈的基本概念​

  • 栈的定义
    • 栈是只允许在一端进行插入或删除操作的线性表
    • 特性:后进先出 Last In First Out, LIFO
    • 栈的数学性质:卡特兰数 Catalan Number
      • 1n+1C2nn\frac 1{n+1}C^n_{2n}
| | <-- 栈顶(top)
| |
| ... |
| b |
| a | <-- 栈底(bottom)
+-----+

栈的基本操作​

栈的顺序存储结构​

  • 结点的类型定义
#define MAXSIZE 100
typedef struct {
ElemType data[MAXSIZE];
int top; // 栈顶指针
} SqStack;
  • 顺序栈的基本运算

    • 初始化
    • 判栈空
    • 入栈
    • 出栈
    • 读栈顶元素
  • 共享栈

  • 栈的链式存储结构

结点的类型定义

typedef struct StackNode {
SElemType data;
struct StackNode *next;
} StackNode, *LinkStack;

参考资料​