c語言二叉樹 怎樣將完全二叉樹用數(shù)組表示?
怎樣將完全二叉樹用數(shù)組表示?定義:如果二叉樹的深度設(shè)置為h,則每層(1-h-1)中的節(jié)點數(shù)(除h層外)達(dá)到最大值,并且h層中的所有節(jié)點都連續(xù)地集中在最左側(cè),這是一個完整的二叉樹。所以,第一行有1=2^
怎樣將完全二叉樹用數(shù)組表示?
定義:如果二叉樹的深度設(shè)置為h,則每層(1-h-1)中的節(jié)點數(shù)(除h層外)達(dá)到最大值,并且h層中的所有節(jié)點都連續(xù)地集中在最左側(cè),這是一個完整的二叉樹。
所以,第一行有1=2^0,第二行有2=2^1,依此類推,第n行有2^(n-1)
那么總數(shù)是一個等比序列,前n行有2^n-1
很明顯,一維數(shù)組是按下標(biāo)順序表示的,我們可以找到在完全二叉樹中的位置
假設(shè)數(shù)組從a[1]開始,例如a[25],25=15 10=(2^4-1)10,那么a[25]是第四個1=5行中的第10個數(shù)
你的意思是以數(shù)組的形式存儲二叉樹,這需要利用完全二叉樹的特性樹。完全二叉樹通常用數(shù)組代替鏈表進(jìn)行存儲,其存儲結(jié)構(gòu)如下:樹:數(shù)組[1.. n] 在樹[i]的最長{n:integer n>=1}中,它具有以下特征:(1)如果i是奇數(shù)且i>=1,則樹的左兄弟是樹[i-1];(2)如果i是偶數(shù)且i