前言:
如今姐妹们对“出栈顺序如何计算”大约比较注意,姐妹们都想要学习一些“出栈顺序如何计算”的相关文章。那么小编在网上搜集了一些有关“出栈顺序如何计算””的相关内容,希望同学们能喜欢,小伙伴们一起来了解一下吧!出栈操作是将栈顶元素删除。基本的算法思想如下:
(1)判断栈是否为空,如果为空则返回ERROR。
(2)将栈顶指针减1,栈顶元素出栈。
采用以下图示说明出栈。
(1)初始状态下,栈中存放5个元素,s.top是栈顶指针,s.base是栈底指针。
(2)将栈中的元素出栈。此时需要将栈顶指针减1,指向下一个位置,并且将出栈的元素10赋值给e。将值赋给e,可以将出栈的值返回。
(3)最后栈顶指针指向了出栈元素的位置。
将上述所有的操作转变为代码实现
定义Pop为出栈函数,主要实现删除栈S中的栈顶元素,将值赋给e。
(1)需要判断栈是否为空,如果为空,则没有元素出栈,返回ERROR
if(S.top == S.base) return ERROR;
(2)将栈顶指针减1,指向栈顶元素
S.top--;
(3)将栈顶元素的值赋值给e,通过int &e返回
e = *S.top;
注意将栈顶指针减1,栈顶元素出栈,也可以归并如下:
e = *--S.top;
标签: #出栈顺序如何计算