课程
/后端开发
/C++
/数据结构探险—栈篇
栈顶为-1 不是才为空吗 希望能说明一下,视频中说为0是空
2017-07-07
源自:数据结构探险—栈篇 2-2
正在回答
首先,我觉得你可能没明白栈顶元素的位置,它的位置一直是在一个空位置,这样才可以有位置来存储新的进栈元素,这也是老师说为什么m_iTop这个角标和元素个数相等的原因,也就是说,当你元素为5个时,存储的角标为0-4,但是你的m_iTop在5的位置。所以,在空栈的情况下,是不是首位置就应该是空的,即它的角标为0,当一个元素入栈后,就可以插入到角标为m_iTop的位置了,插入后一定要进行m_iTop++,让指针指向下一个位置,以便下一个元素的入栈。希望可以帮到你(✿◡‿◡)
我自己写的栈就是-1为空,当有一个元素top=0 ,不是正好能利用整个数组嘛,或者你top=0 为空,添加一个元素数组[top-1] = element 也行啊,就是整个全体上错一位嘛,原理理解了随便写的啊top = 100也行 当然你的数组就从100开始了
为什么是-1,是0。有一个元素的时候为1
举报
栈,先入后出(FILO),带领大家体会栈这种数据结构的美妙
2 回答最后的遍历函数难道不用判断栈是否为空么?
1 回答入栈之后m_iTop自增,但是判断栈中元素个数返回的是m_iTop,这个返回值是不是不正确?
1 回答如果栈满了,出栈时,还要先做m_iTop--吗?
2 回答关于在栈中的循环
1 回答[([([(]]]))) 这个是判断不出来的