一、栈的含义
栈是一种特殊的线性表,仅允许在表的一端进行插入和删除运算。这一端被称为栈顶(top),相对地,把另一端称为栈底(bottom)。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(pop),它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。所以栈具有“后入先出”的特点(LIFO)。
二、栈的顺序存储
1.栈的定义:
1)栈的数组,入栈的数据存储至数组中
2)栈的大小,栈中数据的个数
3)创建一个隐藏栈结构体的节点
2.栈顺序存储的基本操作:
1)初始化栈
2)入栈
3)出栈
4)返回栈的大小
5)返回栈顶元素
6)判断栈是否为空
7)销毁栈
三、顺序栈的常用操作
1.初始化顺序栈
2.入栈
3. 出栈
4.返回栈的大小
5.返回栈顶元素
6.空栈
7.销毁栈
三、栈的链式
(一)在以s为头结点指针的链式栈中,有以下四个非常重要的要素
1.栈空条件:s->next==NULL
2.栈满条件:在不考虑内存溢出的情况下,一般不考虑栈满情况
3.进栈操作: 新建一个结点(用于存放元素e),让指针p指向它,将结点p插入到头结点之后
4.出栈操作: 取出首结点存放的值将其删除,并释放内存
(二)栈链式存储的基本操作:
1)初始化栈
2)入栈
3)出栈
4)返回栈的大小
5)返回栈顶元素
6)判断栈是否为空
7)销毁栈
(三)链式栈的常用操作
1) 链栈的初始化
2)销毁栈
3)判断栈是否为空
4)进栈(push)
5)出栈(Pop)
6)取栈顶元素
7)输出栈