方法迭代是先進後出的方式

2021-10-22 18:30:59 字數 1684 閱讀 4152

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)時,

1if(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...