已采納回答 / 慕勒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