已采纳回答 / yasinSun
其实就相当于一个数组来存放,栈底为0,也就是下标为0的元素,栈底指向当前数组最后一个元素的下一个元素,比如有5个元素,下标分别是0,1,2,3,4 。那么栈顶就是5,而正好有5个元素。
2017-11-16
已采纳回答 / 慕粉2147585081
你看过老师的队列么,里面也是这样的。当你传入一数据时,使用引用就能改变这个数据的值,到后面你想知道出栈元素的值就可以直接输出你开始传入的那个元素
2017-09-16
已采纳回答 / 慕勒4262831
因为队列篇举例的是环形队列,队头和队尾指向的位置一旦超过队的容量,就指向了初始位(0位)。例如:4个位置(0~3)的队列,现在队头在1位置,队尾在3位置,此时再来一个元素,队尾只能移到0位置,即(3+1)%4=0的位置。出队时队头位置的变化情况也是一样的。而栈的情况和环形队列不同,数据存储是按直线形式的,在元素入栈和出栈时不会出现环形队列指针位置变化的情况,下标不用取余。
2017-08-10
最新回答 / 慕标6516834
elem只是作为一个中间值,做一个跳板,在m_iTop下标减一,指向出栈,如果写成m_pBuffer[m_iTop] = elem,因为传递的是引用,那么你的m_pBuffer[m_iTop]的值就被赋值为你主函数传递的值。个人见解,理解错了,勿喷。
2017-07-28
已采纳回答 / 慕姐5027723
栈内的某一项均为0~15之间的某个数字,而这个数字需要转换为0~F,所以构造了一个存有0~F字符串的数组,让0~15作为下标去访问这个数组,因为0~15本身也是0~F数组的索引
2017-07-27
最新回答 / BingBing_Elf
首先,我觉得你可能没明白栈顶元素的位置,它的位置一直是在一个空位置,这样才可以有位置来存储新的进栈元素,这也是老师说为什么m_iTop这个角标和元素个数相等的原因,也就是说,当你元素为5个时,存储的角标为0-4,但是你的m_iTop在5的位置。所以,在空栈的情况下,是不是首位置就应该是空的,即它的角标为0,当一个元素入栈后,就可以插入到角标为m_iTop的位置了,插入后一定要进行m_iTop++,让指针指向下一个位置,以便下一个元素的入栈。希望可以帮到你(✿◡‿◡)
2017-07-07