龙空技术网

数据结构-栈的实现-顺序栈出栈

大懒水母 308

前言:

如今姐妹们对“出栈顺序如何计算”大约比较注意,姐妹们都想要学习一些“出栈顺序如何计算”的相关文章。那么小编在网上搜集了一些有关“出栈顺序如何计算””的相关内容,希望同学们能喜欢,小伙伴们一起来了解一下吧!

出栈操作是将栈顶元素删除。基本的算法思想如下:

(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;

标签: #出栈顺序如何计算