顺序栈的定义
顺序栈是用顺序存储结构实现的栈,类似顺序表的定义,由于栈操作的特殊性,还要设定一个整型的top指针,用它来指示当前栈顶的位置。当数据入栈时,使整型变量top+1,数据出栈时top-1。
- 数据域data是一个一维数组存放顺序栈的数组元素
- MAXSIZE是数组data能容纳元素的最大值,也称顺序栈的容量
- top是顺序栈中最后一个元素的下标位置,而top + 1为顺序栈长度
- 当顺序栈为空时,top = -1,其顺序栈长度为0
- 非空时,其长度为top + 1,如果top + 1的值等于MAXSIZE,则栈为满。
- elemtype是顺序栈数据元素的类型,视具体应用情况而定,如果顺序栈是英文字母表,则elemtype就是字符型,如果顺序栈是学生成绩表,则elemtype就是学生成绩的结构类型。
顺序栈的基本运算
- 顺序栈的初始化
- 判栈空
- 判栈满
- 求顺序栈的长度
- 入栈
- 出栈
- 读取栈顶数据
链栈
采用链式储存结构实现的栈成为链栈,链栈通常通过单链表来实现,因此其结构与单链表的结构相同,由于栈的插入和删除操作仅限制在栈顶位置进行,所以采用单链表的表头作为栈顶指针,同时,为了操作方便,使用带头结点的单链表来实现链栈,数据入栈或者出栈时,使表头结点的指针指向新的表头结点即可。在入栈时,需要为新的数据元素动态开辟存储单元,并修改头结点的指针域&#