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

二叉樹高度java

發布時間:2024-05-13 11:11:01

A. 怎麼計算二叉樹高度

分析二叉樹的深度(高度)和它的左、右子樹深度之間的關系。從二叉樹深度的定義可知,二叉樹的深度應為其左、右子樹深度的最大值加1。由此,需先分別求得左、右子樹的深度,演算法中「訪問結點」的操作為:求得左、右子樹深度的最大值,然後加 1 。

int Depth (BiTree T ){ // 返回二叉樹的深度

if ( !T ) depthval = 0;

else {

depthLeft = Depth( T->lchild );

depthRight= Depth( T->rchild );

depthval = 1 + (depthLeft > depthRight ?

depthLeft : depthRight);

}

return depthval;

}

(1)二叉樹高度java擴展閱讀:

一棵深度為k,且有2^k-1個結點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的結點數都是最大結點數。而在一棵二叉樹中,除最後一層外,若其餘層都是滿的,並且或者最後一層是滿的,或者是在右邊缺少連續若干結點,則此二叉樹為完全二叉樹。具有n個結點的完全二叉樹的深度為floor(log2n)+1。深度為k的完全二叉樹,至少有2k-1個葉子結點,至多有2k-1個結點。

二叉樹的深度是從根節點開始(其深度為1)自頂向下逐層累加的;而二叉樹高度是從葉節點開始(其高度為1)自底向上逐層累加的。雖然樹的深度和高度一樣,但是具體到樹的某個節點,其深度和高度是不一樣的。

B. 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

C. java中二叉樹的深度怎麼計算

若為空,則其深度為0,否則,其深度等於左子樹和右子樹的深度的最大值加1

閱讀全文

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

熱點內容
phplinuxopenssl安裝 瀏覽:870
德陽php招聘 瀏覽:434
盲分離演算法性能指標 瀏覽:22
php工作日誌管理系統 瀏覽:744
swing項目源碼 瀏覽:442
能量平衡一期演算法 瀏覽:280
諾基亞通訊錄怎麼導入安卓 瀏覽:506
雲伺服器卡頓超級vps管理器 瀏覽:731
照片pdf格式轉換成JPG格式 瀏覽:111
手機解除設置加密鎖 瀏覽:595
藍牙如何互相傳app 瀏覽:939
管家婆為什麼登錄不上伺服器 瀏覽:759
方舟編譯器確定時延引擎 瀏覽:997
南京雲伺服器租賃 瀏覽:431
程序員司機等職業生女孩 瀏覽:776
邊緣雲伺服器常態化 瀏覽:590
win10雙顯拖動文件夾卡頓 瀏覽:215
php棋牌游戲開發 瀏覽:450
壓縮空氣水泵安裝圖 瀏覽:511
環保伺服器是什麼 瀏覽:475