问答详情
源自:2-2 实例演示一

C++中如何判断栈为空


栈顶为-1 不是才为空吗 希望能说明一下,视频中说为0是空http://img.mukewang.com/595f6baf0001934302980150.jpg

提问者:慕侠5094107 2017-07-07 19:08

个回答

  • BingBing_Elf
    2018-03-15 10:47:44

    首先,我觉得你可能没明白栈顶元素的位置,它的位置一直是在一个空位置,这样才可以有位置来存储新的进栈元素,这也是老师说为什么m_iTop这个角标和元素个数相等的原因,也就是说,当你元素为5个时,存储的角标为0-4,但是你的m_iTop在5的位置。所以,在空栈的情况下,是不是首位置就应该是空的,即它的角标为0,当一个元素入栈后,就可以插入到角标为m_iTop的位置了,插入后一定要进行m_iTop++,让指针指向下一个位置,以便下一个元素的入栈。希望可以帮到你(✿◡‿◡)

  • NightSong
    2017-07-23 15:07:01

    我自己写的栈就是-1为空,当有一个元素top=0 ,不是正好能利用整个数组嘛,或者你top=0 为空,添加一个元素数组[top-1] = element 也行啊,就是整个全体上错一位嘛,原理理解了随便写的啊top = 100也行 当然你的数组就从100开始了

  • bushiyigehaoren
    2017-07-07 22:04:35

    为什么是-1,是0。有一个元素的时候为1