二叉樹的深度怎麼算?
二叉樹的深度怎麼算
深度為m的滿二叉樹有2^m-1個結點;
具有n個結點的完全二叉樹的深度為[log2n]+1.(log2n是以2為底n的對數
)
希望對你有幫助!
C語言中,二叉樹的深度指?怎樣計算
是二叉樹的基本性質··深度為m的二叉樹最多有2的m次冪減1的結點比如深度為5的滿二叉樹那就是31個結點
office二叉樹的深度怎麼算 10分
二叉樹的深度為12。
因為葉子節點為1個,按二叉樹理論得出(任意一棵二叉樹中度為0的節點總是比度為2的節點多一個),故得出此二叉樹度為2的節點為0個。
12(總節點)-1(度為0)- 0(度為2)=11(度為1)。
故證明此二叉樹每層只有1個節點,總共12層。
C語言二叉樹的深度指什麼?怎麼求?
從根節點到葉子結點一次經過的結點形成樹的一條路徑,最長路徑的長度為樹的深度。根節點的深度為1。
解體思路:
1.如果根節點為空,則深度為0,返回0,遞歸的出口。
2.如果根節點不為空,那麼深度至少為1,然後我們求他們左右子樹的深度,
3.比較左右子樹深度值,返回較大的那一個
4.通過遞歸調用
#include
二叉樹的深度怎麼算
空樹高度為0;
如樹不空,設左子樹高度為l,右子樹高度為r;則樹高為:h=l>r ? l:r+1;
其實一個遞歸的過程
二叉樹的深度怎麼算
二叉樹的深度就是二叉樹的層次
如何寫算法求二叉樹中某個結點的深度
1,可以用遞歸方法,
2,先根遍歷
3,遞歸函數,增加形參,記錄當前的根的層。
4,找到和結點對應的記錄值 。
5,返回結點層數
偽代碼如下:
// T結點,L當前層,value,結點值
//返回-1:沒有找到,0-n:對應層
int get_node_layer(T *node,int value ,int L)
{int i=-1;
if(node)
{
if(node->value ==value)
return L;
if(i = get_node_layer(node->left,value ,L+1)!=-1) //查左子樹,如找到就返回
return i; /
if(i = get_node_layer(node->right,value ,L+1)!=-1)//查右子樹,如找到就返回
return i;
}
return i;
}
二叉樹的深度怎麼算
先遍歷二叉樹的左子樹的深度,然後再遍歷二叉樹右子樹的深度。最後判斷左子樹和右子樹的深度,如果左子樹比右子樹深則返回左子樹深度+1,否則返回右子樹深度+1。
算法如下:
/* 初始條件: 二叉樹T存在。操作結果: 返回T的深度 */int BiTreeDepth(BiTree T){ int i,j; if(!T) return 0; if(T->lchild) i=BiTreeDepth(T->lchild); // 左子樹深度 else i=0; if(T->rchild) j=BiTreeDepth(T->rchild); // 右子樹深度 else j=0; return i>j?i+1:j+1;}