69,512
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
顺序栈中top为指针类型的,怎么判定栈满啊,为什么可以用if(*(S.top)>=S.size)判别?
顺序栈中,top指针指向栈顶元素的位置。当栈满时,意味着栈中已经没有剩余的空间可以存储新的元素了。在这种情况下,我们需要判断栈是否满,以便进行相应的处理。
如果top是指针类型,我们可以通过比较top所指向的内存地址和栈的容量来判断栈是否满。因为在顺序栈中,栈底位置固定,栈顶位置随着入栈和出栈操作改变。当top指向的内存地址超过了栈的容量,就表示栈已满。
使用if(*(S.top) >= S.size)
判别栈满的原理是通过比较top指针所指向的地址和栈的容量来判断。*(S.top)
表示获取top指针所指向的内存地址中的值。如果该值大于等于栈的容量,说明栈已满。