二叉樹的基本算法 二叉樹的深度怎么算?
二叉樹的深度怎么算?設(shè)計計算二叉樹中所有節(jié)點值之和的算法?遞歸方法樹中的節(jié)點數(shù)=左子節(jié)點數(shù)和右子節(jié)點數(shù)1]]樹為空:節(jié)點數(shù)為0inttreenodes(BiTree){intnum1,num2if(t
二叉樹的深度怎么算?
設(shè)計計算二叉樹中所有節(jié)點值之和的算法?
遞歸方法
樹中的節(jié)點數(shù)=左子節(jié)點數(shù)和右子節(jié)點數(shù)1]]樹為空:節(jié)點數(shù)為0
inttreenodes(BiTree)
{
intnum1,num2
if(t==null)//tree為空
return(0)
num1=treenodes(t->lchild)
num2=treenodes(t->rchild)
return(num2,num1)//左、右子節(jié)點數(shù)1]]}
讓二叉樹的葉節(jié)點數(shù)為N0,二階節(jié)點數(shù)為N2,N1為節(jié)點數(shù)因為二叉樹中所有節(jié)點的階數(shù)等于或等于2,所以二叉樹中的節(jié)點總數(shù)是n=N0,N1,N2
讓我們看看二叉樹的分支數(shù)。除根節(jié)點外,所有其他節(jié)點都有一個分支。設(shè)B為分支總數(shù),n=b1][因為這些分支是由階數(shù)為1或2的節(jié)點發(fā)出的,B=N1 N2,n=N1 2*N2 1
通過綜合n=N0 N1 N2和n=N1 2*N2 1,我們可以得到N0=N2 1
完全二叉樹是一個特殊的二叉樹,它適用于N0=N2 1