设栈的顺序存储空间为S(1: m),初始状态为top=m 1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为( )
话心 圈内达人 2015-12-29 20:40:49
3169 7 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开口向上的),大家可以自己画画图】

共 7 个回答

    嘿嘿大人 一代宗师 3066天前

    在群里我发了一个关于栈的文件你可以去看看;

    这道题就是根据栈顶指针的改变确定栈中元素个数;

    因为初始top在是m+1不在1~m之间,所以栈中元素的计算公式是|改变后top-改变前top|=|20-(m+1)|=m-19;

    所以本题应该选择c

    话心 圈内达人 3066天前

    恩,好的,谢谢

    嘿嘿大人 一代宗师 3066天前

    回复 话心:不谢,加油,嘿嘿

    话心 圈内达人 3066天前

    还要加绝对值吗?

    话心 圈内达人 3066天前

    是理解为绝对值吗?

    嘿嘿大人 一代宗师 3066天前

    回复 话心:恩,是绝对值,这样是方便你记忆,不然还要记是初始状态减去改变后状态,如果你自己记得你不加也可以;

    话心 圈内达人 3066天前

    恩,谢谢您

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题