栈的基本运算

2026-06-01

递归的本质就是调用系统栈,存着上一次的函数状态,开辟新的栈空间,直到有返回值,从栈顶向下递推。 比如对于汉诺塔的递归实现: 可以知道其实每次调用函数都储存了当前左边的层数这一状态,并且需要先求解下一次操作后才能接着运算。 于是我们建立一个栈,将待处理操作存入栈中,最后到n==1时依次弹出,这时的顺序刚好满足我们后续的求解...

阅读更多

栈的运算

2026-05-31

基本定义: 栈(Stack)是n个元素a1,a2,…an,组成的有限序列,记作S =(a1,a2,…,an),并且只能在一端插入和删除元素,n=0时称为空栈。 栈的特征: 由于栈只能从一端插入和删除元素,故栈具有后进先出(Last in,first out,LIFO)的特性。 称插入和删除的一端为栈顶(top),另一端为栈底(bottom)。 称插入元素为入栈或压栈(push),删除元素为出栈或弹栈(pop)。 栈的基本运算定义: 初始化栈:设置栈为空栈。 判断栈是否为空栈:若栈为空...

阅读更多