已采納回答 / 慕勒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ù)存儲是按直線形式的,在元素入棧和出棧時(shí)不會出現(xiàn)環(huán)形隊(duì)列指針位置變化的情況,下標(biāo)不用取余。
2017-08-10
補(bǔ)充“一只蝸牛”的一個(gè)棧的方法。如果遇到 (] 或者 [) 等情況,明顯也是不匹配的,可以在判斷條件中直接判定不匹配,結(jié)束函數(shù),不必等到判定結(jié)束。
“垃圾君”說的好,這是括號匹配,不是單純的查括號個(gè)數(shù)。
“垃圾君”說的好,這是括號匹配,不是單純的查括號個(gè)數(shù)。
2017-08-09
最新回答 / 慕標(biāo)6516834
elem只是作為一個(gè)中間值,做一個(gè)跳板,在m_iTop下標(biāo)減一,指向出棧,如果寫成m_pBuffer[m_iTop] = elem,因?yàn)閭鬟f的是引用,那么你的m_pBuffer[m_iTop]的值就被賦值為你主函數(shù)傳遞的值。個(gè)人見解,理解錯(cuò)了,勿噴。
2017-07-28
已采納回答 / 慕姐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
reply@你買的都好吃:不是判斷==-1,因?yàn)閙_iTop并不是數(shù)組下標(biāo),定義的時(shí)候就是定義為棧中元素的個(gè)數(shù),構(gòu)造函數(shù)實(shí)例化對象的時(shí)候,直接賦值為0的。
2017-07-18
replay@你買的都好吃:不是判斷==-1,因?yàn)閙_iTop并不是數(shù)組下標(biāo),定義的時(shí)候就是定義為棧中元素的個(gè)數(shù),構(gòu)造函數(shù)實(shí)例化對象的時(shí)候,直接賦值為0的。
2017-07-18