慕仔3530596
visit应该只是个函数名吧,具体函数内容自己看需求情况去定义
南橘xx

画个图你理解一下
sliverg
栈顶当前指的是空指针,所以得先赋值,再上浮
An_chor
这就是个bool类型的变量啊,你改成a,i等等别的名字都可以啊
黎明4238367
因为每次元素入栈后,栈顶都做了加1操作,指向下一个元素入栈将要存放的位置,出栈时,需要将栈顶减1才能取到元素
helengood
栈满的时候,m_iTop比size大一,因为前面push时m_iTop会++
慕侠2637510
怎么可能啊,m_iTop最多就是n,push()方法一开始不是有判断是否为full么,你push第n+1个元素的时候就直接return false,根本执行不到m_iTop++
边哭边敲
elem只是作为一个中间值,做一个跳板,在m_iTop下标减一,指向出栈,如果写成m_pBuffer[m_iTop] = elem,因为传递的是引用,那么你的m_pBuffer[m_iTop]的值就被赋值为你主函数传递的值。个人见解,理解错了,勿喷。
谁记得
好吧我明白了,原来后面有讲。。。囧
琼华紫英
需要,因为该函数的返回值是bool类型,因此不管if判断是否正确都应该返回一个bool类型值,否则就会出错。
飞花似梦3964665
m_iTop是栈顶指针所在位置,而栈顶指针比最后进入栈数据的位置大1(栈顶指针指向栈最后一个元素后面一个位置),m_iTop--则表示栈中最后一个元素的位置
MAKER_01
应该是栈存储和数组存储一样,首地址为0,新增一个元素后m_iTop+1,指向下一个位置,元素存在位置0的内存中。因此第n个元素位置和对应的m_iTop=n指向的位置不同
未道修
构造函数里 char *m_pBuffer=new char[m_iSize]; 改成 m_pBuffer=new char[m_iSize];
翔纪念83574491
说一下出桟操作的,如果前面if语句满足要求的话,程序就直接return,后面的就不会执行,如果不满足要求的话,程序就会跳过if语句,执行后面的return语句,因此push那个操作是没有问题的
红袖侍读
如果是空栈,执行遍历没有失败,只是没有元素输出而已
这一操作结果符合空栈的遍历操作,没有问题
不惧亢龙
复习了下前面的知识,明白了,没有同名可不用