前言:
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
一、顺序存储
1.栈的顺序存储结构体:
2.构建一个空栈:
3.判断栈是否为空:
4.将栈置空:
5.获取栈顶元素:
6.删除栈顶元素:
7.插入元素e为新栈顶元素:
8. 从栈底到栈顶依次对栈中的每个元素打印:
二、链式存储
1.栈的链式结构:
2.构建空栈:
3.将栈S置空:
4.插入元素e到链栈S (成为栈顶新元素):
5.若栈不为空,则删除S的栈顶元素,用e返回其值. 并返回OK,否则返回ERROR:
三、栈的应用 ---递归:因为程序中的栈结构是顺序栈,因此,如果递归的次数过多,程序中的数据过大,在不断的压栈过程中造成栈空间耗尽而产生栈溢出;栈溢出常由于函数递归过深或局部数组过大造成。
🌰:
1.斐波拉契数列:
2.Hanoi 塔问题:
网友评论