二叉樹的高度怎么看 二叉樹的節(jié)點個數(shù)與深度
二叉樹的深度和高度有什么區(qū)別??二叉樹的深度和高度是怎么定義的?二叉樹的高度是多少?求二叉樹高度的原理、算法是什么,越詳細越好,C語言,謝謝?只有一個節(jié)點的二叉樹的高度(深度)是為0還是1,二叉樹的高度是什么?
本文導(dǎo)航
二叉樹的六種表示方法
區(qū)別:深度是從根節(jié)點數(shù)到它的葉節(jié)點,高度是從葉節(jié)點數(shù)到它的根節(jié)點。
二叉樹的深度是從根節(jié)點開始(其深度為1)自頂向下逐層累加的;而二叉樹高度是從葉節(jié)點開始(其高度為1)自底向上逐層累加的。雖然樹的深度和高度一樣,但是具體到樹的某個節(jié)點,其深度和高度是不一樣的。
二叉樹的節(jié)點個數(shù)與深度
兩個定義是一樣的,如果根的層次為1,二叉樹的高度或者深度就是最多的從根開始的子樹層數(shù)
怎么計算三叉樹的高度
數(shù)據(jù)結(jié)構(gòu)課本上有最大高度。
最小高度就是完全二叉樹了。高度為log
2
(n+1),see
the
pic:
c語言建立二叉樹圖解
首先分析二叉樹的深度(高度)和它的左、右子樹深度之間的關(guān)系。從二叉樹深度的定義可知,二叉樹的深度應(yīng)為其左、右子樹深度的最大值加1。由此,需先分別求得左、右子樹的深度,算法中“訪問結(jié)點”的操作為:求得左、右子樹深度的最大值,然后加
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;
}
只有一個節(jié)點的二叉樹的高度(深度)是為0還是1
層數(shù)、深度、高度數(shù)是一樣,但三個名詞還是各有所指:層代表橫向一排節(jié)點,深度是從根節(jié)點往下(葉子)看,高度是從葉子節(jié)點往根看2^(i-1)個結(jié)點,根是要算作1層了,理會他的意思就行了
二叉樹的高度是什么?
二叉樹的高度是高度是從下往上數(shù)。
二叉樹是一棵空樹,或者是一棵由一個根節(jié)點和兩棵互不相交的,分別稱作根的左子樹和右子樹組成的非空樹;左子樹和右子樹又同樣都是二叉樹。
完全二叉樹的特點是葉子結(jié)點只可能出現(xiàn)在層序最大的兩層上,并且某個結(jié)點的左分支下子孫的最大層序與右分支下子孫的最大層序相等或大1。
二叉樹性質(zhì):
若對一棵有n個節(jié)點的完全二叉樹進行順序編號(1≤i≤n),那么,對于編號為i(i≥1)的節(jié)點:
當(dāng)i=1時,該節(jié)點為根,它無雙親節(jié)點。
當(dāng)i>1時,該節(jié)點的雙親節(jié)點的編號為i/2。
若2i≤n,則有編號為2i的左節(jié)點,否則沒有左節(jié)點。
若2i+1≤n,則有編號為2i+1的右節(jié)點,否則沒有右節(jié)點。
掃描二維碼推送至手機訪問。
版權(quán)聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請注明出處。