栈就相当于一口井,往井里面放东西,遵循先进先出,后进后出的原则
顺序栈
初始化
顺序栈的结构只需要一个数组和top指针
栈的初始化需要将里面的所有元素都设置为1,初始化栈顶为-1
释放
直接释放栈即可
元素的插入
这里使用的是满递增栈,先判断是否栈是否已满,top从下到上插入元素
元素的删除
直接取出里面的元素即可
链式栈
初始化
节点结构:数据域+指针域
头结构:top指针,计数器(可不要)
初始化TOP指针为空,因为栈元素的标号从0开始,那么一开始将TOP指针设置为-1,计数器设置为0
元素的释放
1.先判断这个栈是否存在,非法空间的访问都会引起段错误
2.循环栈中的每个元素,将其释放;在栈中循环结束的条件就是top指针的值,当top指针不存在时,循环结束
3.申请临时指针,将目前栈顶指针备份,栈顶移动,删除临时指针
添加元素
删除元素
1.先判断栈是否为空,访问非法空间,会引起段错误
2.将元素返回上层空间
3.释放元素空间