当前位置:   article > 正文

顺序栈操作清空,销毁,入栈,判断栈空操作_动态数组顺序栈清空

动态数组顺序栈清空

判断顺序栈是否为空

 

top指针和base指针相等

 

给我们一个栈S,判断是否为空,不为空,则返回false

 

求顺序栈的长度:栈里头有多少个元素,给我一个顺序栈S,求两个指针的差

清空顺序栈:不管里面存了什么,只要将top指针指向栈底就是空

如果这个栈存在,S.base,有这样一个地址,那我们就 将top指针移下来,移动到和base指针的值相等

 

销毁顺序栈:不仅里头没有元素了,连这块空间都从内存中释放了,内存中没有这块空间了,它已经返回内存池。

如果当前的栈不为空,我们直接将栈底指针删除掉,delete S.base是直接把数组回归内存里

然后将栈的大小设置为0,top指针和base指针都设置为空,

S.stacksize=0;

S.base=S.top=NULL

将这两行结构叫做栈的一个结构,这三句话直接把结构类型的三个值设置为空

顺序栈的入栈:把元素存到栈顶,然后top指针上移,移到下一个位置

也可能当前的栈已经满了,溢出,

所以需要判断栈是否已经满了

所以第一步是判断是否栈满(top-base和Stacize的值相等)

代码如下:

Push入栈,对谁操作?对S类型,即三个成员的这种结构类型&,将元素e入栈

若不满,就可以正常插入了:将元素e放在top指针所指的这个地方,即给top指针所指的这个元素赋值,那么怎么我们怎么指到指针所指的这个位置啊?

指针运算

指针的*号运算是对指针所指的那块空间进行操作,*top就是取top指针指的那块空间

赋值完成后top++指向下一块空间,这两步可以合并成一步,

这里*S.top的运算优先级高,所以是先将e的值赋值给它,而++在后面,赋值完以后,top指针再++

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/404985
推荐阅读
相关标签
  

闽ICP备14008679号