導航:首頁 > 編程語言 > java二叉樹深度

java二叉樹深度

發布時間:2023-10-23 17:45:22

java數據結構二叉樹深度遞歸調用演算法求內部演算法過程詳解

二叉樹

1

2
3
4
5
6
7
這個二叉樹的深度是3,樹的深度是最大結點所在的層,這里是3.
應該計算所有結點層數,選擇最大的那個。
根據上面的二叉樹代碼,遞歸過程是:
f
(1)=f
(2)+1
>
f
(3)
+1
?
f(2)
+
1
:
f(3)
+1
f(2)
跟f(3)計算類似上面,要計算左右結點,然後取大者
所以計算順序是f(4.left)
=
0,
f(4.right)
=
0
f
(4)
=
f(4.right)
+
1
=
1
然後計算f(5.left)
=
0,f(5.right)
=
0
f
(5)
=
f(5.right)
+
1
=1
f(2)
=
f(5)
+
1
=2
f(1.left)
計算完畢,計算f(1.right)
f(3)
跟計算f(2)的過程一樣。
得到f(3)
=
f(7)
+1
=
2
f(1)
=
f(3)
+
1
=3
12345if(depleft>depright){ return depleft+1;}else{ return depright+1;}
只有left大於right的時候採取left
+1,相等是取right

Ⅱ java,求二叉樹的深度的演算法實現

用遞歸很簡單了。

BTNode類就自己定義吧,屬性為名字,和左右孩子以及set、get方法

前序遍歷:
protected static void preorder(BTNode node) {
if (node != null) {
visit(node);//隨便寫點列印p的名字之類的語句
preorder(node.getLeft());
preorder(node.getRight());
}
}
中序:
protected static void inorder(BTNode node) {
if (node != null) {
inorder(node.getLeft());
visit(node);
inorder(node.getRight());
}
}
後序:
protected static void postorder(BTNode node) {
if (node != null) {
postorder(node.getLeft());
postorder(node.getRight());
visit(node);
}
}
非遞歸的就麻煩了,得用到棧。我就偷個懶不做了...

Ⅲ Java數據結構二叉樹深度遞歸調用演算法求內部演算法過程詳解

二叉樹
1
2 3
4 5 6 7
這個二叉樹的深度是3,樹的深度是最大結點所在的層,這里是3.

應該計算所有結點層數,選擇最大的那個。

根據上面的二叉樹代碼,遞歸過程是:

f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1

f(2) 跟f(3)計算類似上面,要計算左右結點,然後取大者

所以計算順序是f(4.left) = 0, f(4.right) = 0

f(4) = f(4.right) + 1 = 1

然後計算f(5.left) = 0,f(5.right) = 0

f(5) = f(5.right) + 1 =1

f(2) = f(5) + 1 =2

f(1.left) 計算完畢,計算f(1.right) f(3) 跟計算f(2)的過程一樣。

得到f(3) = f(7) +1 = 2

f(1) = f(3) + 1 =3

if(depleft>depright){
returndepleft+1;
}else{
returndepright+1;
}

只有left大於right的時候採取left +1,相等是取right

Ⅳ 二叉樹的深度是什麼

想知道二叉樹的深度就要先要判斷節點,以下是計算二叉樹的詳細步驟:

1、一顆樹只有一個節點,它的深度是1;

2、二叉樹的根節點只有左子樹而沒有右子樹,那麼可以判斷,二叉樹的深度應該是其左子樹的深度加1;

3、二叉樹的根節點只有右子樹而沒有左子樹,那麼可以判斷,那麼二叉樹的深度應該是其右樹的深度加1;

4、二叉樹的根節點既有右子樹又有左子樹,那麼可以判斷,那麼二叉樹的深度應該是其左右子樹的深度較大值加1。



(4)java二叉樹深度擴展閱讀:

從根結點開始,假設根結點為第1層,根結點的子節點為第2層,依此類推,如果某一個結點位於第L層,則其子節點位於第L+1層。

由m(m≥0)棵互不相交的樹構成一片森林。如果把一棵非空的樹的根結點刪除,則該樹就變成了一片森林,森林中的樹由原來根結點的各棵子樹構成。

閱讀全文

與java二叉樹深度相關的資料

熱點內容
智能還款信用卡源碼 瀏覽:553
zoo文件夾 瀏覽:762
安卓2k21如何下載 瀏覽:648
某年某月的天數python 瀏覽:912
廣度優先演算法的復雜度 瀏覽:399
系統重裝網站源碼 瀏覽:152
相冊加密相片 瀏覽:297
美國正常化行政命令 瀏覽:277
中級審計師教材pdf 瀏覽:696
wps中pdf旋轉 瀏覽:600
getex命令 瀏覽:190
雲閃付和農行卡app怎麼授權 瀏覽:123
羈絆命令 瀏覽:51
解壓視頻怪獸大全 瀏覽:964
最新中華人民共和國預演算法 瀏覽:861
電信dns伺服器地址杭州 瀏覽:506
java內存泄露內存溢出 瀏覽:815
筆記本系統映像恢復網路文件夾 瀏覽:932
動態庫能否編譯成靜態 瀏覽:704
少兒編程缺老師 瀏覽:354