public class main
public static int split(int number)
return number;}}
考察方法進棧與出棧的順序。先進後出
有個知識點,方法在出棧的時候,執行的是return語句。因為出棧就意味著方法結束並消費,如果沒有return語句,那麼方法出棧的時候什麼都不執行,就直接銷毀。
1.執行split(12)時,執行**system.out.print(split(number / 2))
split(12/2)進棧,此時number=6;
2.執行split(6)時,執行**system.out.print(split(number / 2))
split(6/2)進棧,此時number=3;
3.執行split(3)時,
第
1
行
if
(number %
2
!=
0
)
第
2
行 system.out.print(split((number +
1
) /
2
));
第
3
行 system.out.print(split(number /
2
));
按照順序執行
先執行第2行
首先split((3+1)/2)進棧,此時number=2,
再執行split(2),那麼split(2/2)進棧,此時number=1, 最後return 1,
注意此時第2行**還沒有結束
此時split(2/2)出棧,輸出1;
split((3+1)/2)出棧,輸出2;
第二行**結束,再執行第三行,此時number=3,執行system.out.print(split(number / 2))
split(3/2)進棧,number=1,return,那麼就需要出棧了
split(3/2)出棧,輸出1
split(6/2)出棧,輸出3
split(12/2)出棧,輸出6;
最終結果12136;
split(number)方法,最終返回的是number這個值,所以split(n)出棧的輸出結果就是n
整理:split(12/2)進棧
split(6/2)進棧
split((3+1)/2)進棧
split(2/2)進棧
split(2/2)出棧,輸出1
split((3+1)/2)出棧,輸出2
split(2/2)進棧
split(2/2)出棧,輸出1
split(6/2)出棧,輸出3
split(12/2)出棧,輸出6
樹狀結構的選單也是先進後出,先把最裡面層的資料結構整理好不斷的往最外層整合,最後是乙個樹狀結構。
堆疊的先進後出
實現堆疊的先進後出 include include include define max size 10 define error 0 define true 1 typedef struct elemttype 定義棧的結構 elemttype p1 elemttype p2 elemttype ...
建立先進先出和先進後出鍊錶
鍊錶學習筆記 二 生成單鏈表 1.生成新節點 p malloc 鍊錶大小 給新節點賦值 p data p next null 2.新增到表尾 tail next p 3.設定新錶尾 tail p 類c語言描述 struct node creat1 tail next null return head...
單向鍊錶的建立與遍歷(先進先出和先進後出)
先進先出 輸入任意一串不為零的數,並建立和前一方向不同的單向鍊錶,並按照先進先出的原則依次輸出。include include include using namespace std typedef struct node node,linklist linklist createlist else...