赞
踩
目录
(1)初始化栈(InitStack)
InitStack(&S):初始化栈S,构造一个空栈,并为其分配相应的内存空间。
(2)创建和销毁栈
CreateStack(&S):创建栈S(通常包含在初始化过程中)。
DestroyStack(&S):销毁栈S,释放栈S所占用的内存空间。
(3)向栈顶添加元素(Push)
Push(&S, x):若栈S未满,则将元素x加入栈顶,成为新的栈顶元素。
(4)从栈顶移除元素(Pop)
Pop(&S, &x):若栈S非空,则弹出栈顶元素,并使用变量x返回该元素的值。
(5)获取栈顶元素(GetTop)
GetTop(S, &x):若栈S非空,则使用变量x返回栈顶元素的值,但不删除该元素。
(6)其他常用操作
StackEmpty(S):判断栈S是否为空。若S为空,则返回true,否则返回false。
给出一个进栈顺序,问有哪些合法的出栈顺序?
例如:进栈顺序为a->b->c->d->e,考试的时候一般会出选择题,问选项中哪种出栈顺序不可能出现?
这里我们给出一个不可能出现的顺序:c->a->b->d->e。(因为c如果第一个出栈,那么栈内元素从栈顶到栈底一定是b、a,b一定会先于a出栈)
那么一共存在多少种不同的出栈顺序呢?可以采用数学归纳法得到一个公式(不要求掌握,作为知识扩展):
顺序栈的考察是栈结构的重点,需要关注栈的先进后出特性以及一些重要操作,并学会使用栈解决实际问题
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/730792
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。