最赞回答 / MAKER_01
应该是栈存储和数组存储一样,首地址为0,新增一个元素后m_iTop+1,指向下一个位置,元素存在位置0的内存中。因此第n个元素位置和对应的m_iTop=n指向的位置不同
2016-08-03
已采纳回答 / 未道修
老师讲的用两个栈的没有听懂,自己想了一个办法,望采纳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