1、 栈的定义:
-
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
-
简单来说:栈是只允许在一端进行插入或删除操作的线性表(线性表:具有相同数据类型的n个数据元素的有限序列)
2、栈的原则:后进先出
- 栈顶:线性表允许进行插入和删除的那一端
- 栈底:固定的,不允许进行插入和删除的另一端
- 空栈:不含有任何元素的空表
- 栈的几种操作:
- 初始化栈 S:InitStack(&S)
- 判断是否为空栈:StackEmpty(S)
- 进栈:Push(&S, x)
- 出栈:Pop(&S, &x)
3、栈与递归
递归的例子:
def f(x):
if x < 0: # 递归边界
return
print(x)
f(x - 1) # 自己调用自己
print(x