出栈操作是将栈顶元素删除。基本的算法思想如下:
(1)判断栈是否为空,如果为空则返回ERROR。
(2)将栈顶指针减1,栈顶元素出栈。
采用以下图示说明出栈。
(1)初始状态下,栈中存放5个元素,s.top是栈顶指针,s.base是栈底指针。
(2)将栈中的元素出栈。此时需要将栈顶指针减1,指向下一个位置,并且将出栈的元素10赋值给e。将值赋给e,可以将出栈的值返回。
(3)最后栈顶指针指向了出栈元素的位置。
将上述所有的操作转变为代码实现
定义Pop为出栈函数,主要实现删除栈S中的栈顶元素,将值赋给e。
首先需要判断栈是否为空,如果为空,则没有元素出栈,返回ERROR
if(S.top==S.base)returnERROR;
然后将栈顶指针减1,指向栈顶元素
S.top--;
最后将栈顶元素的值赋值给e,通过inte返回
e=*S.top;注意将栈顶指针减1,栈顶元素出栈,也可以归并如下:e=*--S.top;