已采纳回答 / 慕勒4262831
因为队列篇举例的是环形队列,队头和队尾指向的位置一旦超过队的容量,就指向了初始位(0位)。例如:4个位置(0~3)的队列,现在队头在1位置,队尾在3位置,此时再来一个元素,队尾只能移到0位置,即(3+1)%4=0的位置。出队时队头位置的变化情况也是一样的。而栈的情况和环形队列不同,数据存储是按直线形式的,在元素入栈和出栈时不会出现环形队列指针位置变化的情况,下标不用取余。
2017-08-10
已采纳回答 / 慕姐5027723
栈内的某一项均为0~15之间的某个数字,而这个数字需要转换为0~F,所以构造了一个存有0~F字符串的数组,让0~15作为下标去访问这个数组,因为0~15本身也是0~F数组的索引
2017-07-27
已采纳回答 / 未道修
老师讲的用两个栈的没有听懂,自己想了一个办法,望采纳Mystack<char>*pmystack=new Mystack<char>(50); char str[]="[{()({{}}())}](([{}])){[([])]}{}()"; pmystack->Push(str[0]);//让第一个字符入栈 for(int i=1;i<strlen(str);i++)//从第二个字符开始扫描 { if((pmystack->m_pBuffer[pmystack-...
2016-07-31
已采纳回答 / sardipeng
构造函数里 char *m_pBuffer=new char[m_iSize]; 改成 m_pBuffer=new char[m_iSize];
2016-07-31
已采纳回答 / ziom
这当然是不匹配的。你仔细想想现实中可能出现这样的括号组合吗?括号的作用是包裹内容,区分级别,你这个小括号和中括号都交叉了,还如何包裹内容?从程序执行的角度来说也是不正确的,当检索到第二个左中括号的时候,它急需的是右中括号,这时,下一个检索出来的括号必定要是某个左括号或者它需要的右中括号,否则会直接打印不匹配。
2016-07-31