3.1 栈 Stack

基础概念

相关提炼内容见 stack

栈的基本概念

  • 栈的定义
    • 栈是只允许在一端进行插入或删除操作的线性表
    • 特性:后进先出 Last In First Out, LIFO
    • 栈的数学性质:卡特兰数 Catalan Number
|     |  <-- 栈顶(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;

参考资料