为什么是倒着压得
李琳玉 圈内达人 2016-01-24 11:11:30
3009 1 0
问题来自:
设栈的顺序存储空间为S(1: m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为( )
A. 30
B. 20
C. m-19
D. m-20
答案:C
解析:栈的顺序存储空间为S(1: m),初始状态top=m+1,说明这个栈是m在栈底,1是开口向上的。这题可以假设栈中有x个元素,当X=0时,也就是栈中没有元素,则Top=m+1,当X=m时,也就是栈满,则Top=1,由此可以得出Top=m+1-X,就可以得出X=m+1-Top。 所以说这个时候栈中的元素=m+1-Top,当Top=20时,栈中元素=m-19。所以选择C。 【注意:没有规定栈中栈底必须是0,这个在课程中也说过了。(如果说初始状态top=0,说明这个栈是1在栈底,m开口向上的),大家可以自己画画图】

共 1 个回答

    青栀如初 资深大师 3040天前

    亲爱哒,不好意思,刚刚才看到问题。 我们说:栈哒顺序采取哒是“先进后出”的原则的。(也就是最先进入栈的最后才会出来)所以我们说:栈是从栈顶向栈底倒压的。 如果不理解哒话,我们可以把栈哒结构想象为一个“开口向上的玻璃瓶”(而且瓶子哒瓶口很窄,只能容纳我们伸一只手哒大小)接下来我们会隔几天在瓶子里面放入乒乓球,等乒乓球达到一定哒量是,它会堆到瓶口。那么这时候你想想,你最先拿出来哒乒乓球是第一次放入瓶子里哒呢,还是最后一次放入瓶子中哒呢? 显然是第一次对不对。 所以当你理解了这个例子,也就知道了为什么我们说:栈是先进后出(从栈顶向栈底倒压)也就是为什么栈会是倒压哒原因了。 亲爱哒,希望我哒解释对你哒理解能有所帮助哟,如果有不懂哒我们还可以一起讨论哟,我们一起加油吧,么么哒!

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题