已采納回答 / 慕勒4262831
因?yàn)殛?duì)列篇舉例的是環(huán)形隊(duì)列,隊(duì)頭和隊(duì)尾指向的位置一旦超過隊(duì)的容量,就指向了初始位(0位)。例如:4個(gè)位置(0~3)的隊(duì)列,現(xiàn)在隊(duì)頭在1位置,隊(duì)尾在3位置,此時(shí)再來一個(gè)元素,隊(duì)尾只能移到0位置,即(3+1)%4=0的位置。出隊(duì)時(shí)隊(duì)頭位置的變化情況也是一樣的。而棧的情況和環(huán)形隊(duì)列不同,數(shù)據(jù)存儲(chǔ)是按直線形式的,在元素入棧和出棧時(shí)不會(huì)出現(xiàn)環(huán)形隊(duì)列指針位置變化的情況,下標(biāo)不用取余。
2017-08-10
已采納回答 / 慕姐5027723
棧內(nèi)的某一項(xiàng)均為0~15之間的某個(gè)數(shù)字,而這個(gè)數(shù)字需要轉(zhuǎn)換為0~F,所以構(gòu)造了一個(gè)存有0~F字符串的數(shù)組,讓0~15作為下標(biāo)去訪問這個(gè)數(shù)組,因?yàn)?~15本身也是0~F數(shù)組的索引
2017-07-27
已采納回答 / 未道修
老師講的用兩個(gè)棧的沒有聽懂,自己想了一個(gè)辦法,望采納Mystack<char>*pmystack=new Mystack<char>(50); char str[]="[{()({{}}())}](([{}])){[([])]}{}()"; pmystack->Push(str[0]);//讓第一個(gè)字符入棧 for(int i=1;i<strlen(str);i++)//從第二個(gè)字符開始掃描 { if((pmystack->m_pBuffer[pmystack-...
2016-07-31
已采納回答 / sardipeng
構(gòu)造函數(shù)里 char *m_pBuffer=new char[m_iSize]; 改成?m_pBuffer=new char[m_iSize];
2016-07-31
已采納回答 / ziom
這當(dāng)然是不匹配的。你仔細(xì)想想現(xiàn)實(shí)中可能出現(xiàn)這樣的括號(hào)組合嗎?括號(hào)的作用是包裹內(nèi)容,區(qū)分級(jí)別,你這個(gè)小括號(hào)和中括號(hào)都交叉了,還如何包裹內(nèi)容?從程序執(zhí)行的角度來說也是不正確的,當(dāng)檢索到第二個(gè)左中括號(hào)的時(shí)候,它急需的是右中括號(hào),這時(shí),下一個(gè)檢索出來的括號(hào)必定要是某個(gè)左括號(hào)或者它需要的右中括號(hào),否則會(huì)直接打印不匹配。
2016-07-31