栈结构的实现

2020-04-11  本文已影响0人  旅行者_sz

前言:

栈(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 塔问题:

上一篇 下一篇

猜你喜欢

热点阅读