樹的遍歷遞迴非遞迴

2021-10-03 15:48:53 字數 1496 閱讀 1295

1先序

//遞迴

class solution

public void b

(list list,treenode tree)

}

//非遞迴

class solution

else

}return list;

}}

2中序

//遞迴

class solution

public void b

(list list,treenode tree)

}

//非遞迴

class solution

else

}return list;

}}

3後序

//遞迴

class solution

public void b

(list list,treenode tree)

}

//非遞迴

class solution

else

} collections.

reverse

(list)

;return list;}}

```4層次`

``go

//遞迴

class solution

public void dfs(int l,treenode t)

list.get(l).add(t.val);

if(t.left!=null)

if(t.right!=null)}}

//非遞迴

class solution

l.add

(list);}

return l;

}}

層次擴充套件之字型

public class solution 

else

queue.

add(t.left)

; queue.

add(t.right);}

count--;}

flag=flag==

0?1:0;

count=queue.

size()

;if(a.size()

!=0)}

return list;

}}

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行

public class solution count--;}

count=queue.

size()

;if(a.size()

!=0)}

return list;

}}

樹的遞迴和非遞迴遍歷

利用迴圈和棧實現前序 中序和後序遍歷 利用佇列實現層次遍歷 typedef struct node bitree stacks 前序遍歷 針對乙個根結點,先輸出其根結點值,再push其所有左結點,然後再彈出乙個結點取其右結點作為新的根結點。void preorder bitree t 前序遍歷的非遞...

樹的遞迴與非遞迴遍歷

樹的遞迴遍歷 建立一棵用二叉鍊錶方式儲存的二叉樹,並對其進行遍歷 先序 中序和後序 將遍歷序列輸出到顯示器上。基本要求 從鍵盤輸入一棵二叉樹的先序序列,以二叉鍊錶作為儲存結構,建立二叉樹並對其進行遍歷 先序 中序和後序 然後將遍歷結果列印輸出。要求編寫遞迴和非遞迴兩種演算法來實現。測試資料 輸入序列...

樹的非遞迴遍歷

在vs2011版本中除錯通過。include stdafx.h include stack.h include 標準庫中定義的棧 includeusing namespace std define max len 15 void create tree treenode head,char pdat...