最新回答 / 慕尼黑8374427
怎么可能啊,m_iTop最多就是n,push()方法一開始不是有判斷是否為full么,你push第n+1個元素的時候就直接return false,根本執行不到m_iTop++
2018-02-03
已采納回答 / yasinSun
其實就相當于一個數組來存放,棧底為0,也就是下標為0的元素,棧底指向當前數組最后一個元素的下一個元素,比如有5個元素,下標分別是0,1,2,3,4 。那么棧頂就是5,而正好有5個元素。
2017-11-16
已采納回答 / 慕粉2147585081
你看過老師的隊列么,里面也是這樣的。當你傳入一數據時,使用引用就能改變這個數據的值,到后面你想知道出棧元素的值就可以直接輸出你開始傳入的那個元素
2017-09-16
已采納回答 / 慕勒4262831
因為隊列篇舉例的是環形隊列,隊頭和隊尾指向的位置一旦超過隊的容量,就指向了初始位(0位)。例如:4個位置(0~3)的隊列,現在隊頭在1位置,隊尾在3位置,此時再來一個元素,隊尾只能移到0位置,即(3+1)%4=0的位置。出隊時隊頭位置的變化情況也是一樣的。而棧的情況和環形隊列不同,數據存儲是按直線形式的,在元素入棧和出棧時不會出現環形隊列指針位置變化的情況,下標不用取余。
2017-08-10
最新回答 / 慕標6516834
elem只是作為一個中間值,做一個跳板,在m_iTop下標減一,指向出棧,如果寫成m_pBuffer[m_iTop] = elem,因為傳遞的是引用,那么你的m_pBuffer[m_iTop]的值就被賦值為你主函數傳遞的值。個人見解,理解錯了,勿噴。
2017-07-28
已采納回答 / 慕姐5027723
棧內的某一項均為0~15之間的某個數字,而這個數字需要轉換為0~F,所以構造了一個存有0~F字符串的數組,讓0~15作為下標去訪問這個數組,因為0~15本身也是0~F數組的索引
2017-07-27