栈
栈的概念及结构
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端
称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据也在栈顶。
顺序栈的声明:
0、顺序栈的声明
栈的实现
栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的
代价比较小。
顺序栈的基本操作:
1、InitStack(&S)(初始化栈)
2、DestroyStack(&S)(销毁栈)
3、ClearStack(&S)(清空栈)
4、StackEmpty(S)(判断栈是否为空)
5、StackLength(S)(返回栈的长度)
6、GetTop(S,&e)(返回栈的栈顶元素)
7、Push(&S,e)(将元素e压入栈)
8、Pop(&S,&e)(栈顶元素出栈)
9、StackTraverse(S,Status(*visit)())(遍历栈)
顺序栈的应用:
10、CharMatch(检查符号{【()】}是否匹配)