大家好,今天小编关注到一个比较有意思的话题,就是关于C语言栈空的问题,于是小编就整理了2个相关介绍C语言栈空的解答,让我们一起看看吧。
c语言版数据结构,空栈的构造?
栈的本意是一个数组,里面存取数据的方式是先进后出。因此,你需要一个cusor来指定当前的栈顶(可能你使用top实现的),你可能还需要当前存放了多少数据进栈了,栈是否空、满,因此你还需要一个int变量计算栈元素个数。没push+1,没pop -1。你完全不需要成员stacksize,还有你需要一个栈元素个数的计数器。另外你不需要将形参由引用该为指针,反而降低效率!
如何判断栈空和栈满?
判断栈空和栈满的方法如下:
1. 判断栈空:如果栈中没有任何元素,即栈的大小为0,那么栈就为空。可以通过维护一个栈顶指针来判断栈是否为空,当栈顶指针为-1时,表示栈为空。
2. 判断栈满:如果栈中的元素个数已经达到了栈的最大容量,那么栈就满了。可以设置一个栈的最大容量,当栈中的元素个数达到最大容量时,即栈满。
需要注意的是,在使用数组实现栈时,当栈满时可以选择扩展栈的容量,也可以抛出栈满异常。在使用链表实现栈时,栈的大小理论上是无限的,因此不存在栈满的情况。
(图片来源网络,侵删)
到此,以上就是小编对于C语言栈空的问题就介绍到这了,希望介绍关于C语言栈空的2点解答对大家有用。
(图片来源网络,侵删)