3.1 数据结构栈

01抽象数据类型栈的定义

1、栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为栈顶,相应地,表头端称为栈底,不含元素的空表称为空栈。

2、栈又称为后进先出的线性表。


02栈的表示

1、栈有两种存储表示方法

(1)顺序栈:即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。

(2)由于栈在使用过程红中所需最大空间的大小很难估计,因此,一般来说,在初始化设空栈时不应限定栈的最大容量。

2、基本操作

(1)初始化:顺序栈的初始化就是构造一个空的顺序栈S,初始分配的最大容量为maxsize,预设的需要扩容的增量为incresize。其主要操作是:申请存储控件,栈顶指针的初始值置为-1。

(2)求顺序栈的长度:统计顺序栈S中数据元素的个数,并返回统计结果。其主要操作是:返回顺序栈中栈顶指针的上一个位置。

(3)进栈:将一个新元素插入到顺序栈S的栈顶的上一个位置,作为新的栈顶元素。其主要操作是:先判断顺序栈是否已满,若已满,则重新分配空间,然后将栈顶指针加1,再将进栈元素插入到栈顶处。

(4)出栈操作:将元素S的栈顶元素删除。其主要操作是:先判断栈顶指针书否为空,若非空,则将栈顶元素取出,然后将栈顶指针减1。

(5)取栈顶操作:取出顺序栈S的栈顶元素的值。其主要操作是:先判断顺序栈是否为空,若非空,则将栈顶元素取出。

(6)判断栈空:判断顺序栈S是否为空。若S为空则返回true,否则返回false。

(7)撤销顺序栈:。释放顺序栈S所占用的存储空间。

C语言 | 计算存款本息和(2) mp.weixin.qq.com图标

文章来源: zhuanlan.zhihu.com,作者:,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/336921856

(完)