用一維數(shù)組存放的一棵完全二叉樹 如何存儲一顆二叉樹?
如何存儲一顆二叉樹?1. 順序存儲結(jié)構(gòu)使用一組具有連續(xù)地址的存儲單元,從上到下、從左到右存儲完整二叉樹的節(jié)點元素。其他二叉樹與完全二叉樹的節(jié)點進行比較,并存儲在一維數(shù)組的相應(yīng)分量中。2鏈式存儲結(jié)構(gòu),如
如何存儲一顆二叉樹?
1. 順序存儲結(jié)構(gòu)使用一組具有連續(xù)地址的存儲單元,從上到下、從左到右存儲完整二叉樹的節(jié)點元素。其他二叉樹與完全二叉樹的節(jié)點進行比較,并存儲在一維數(shù)組的相應(yīng)分量中。2鏈式存儲結(jié)構(gòu),如二叉鏈表、三叉戟鏈表、三線程二叉樹
定義:如果二叉樹的深度設(shè)置為h,則除h層外,每層(1-h-1)的節(jié)點數(shù)達到最大值,且h層中的所有節(jié)點連續(xù)集中在最左側(cè),這是一個完整的二叉樹。
所以,第一行有1=2^0,第二行有2=2^1,依此類推,第n行有2^(n-1)
那么總數(shù)是一個等比序列,前n行有2^n-1
很明顯,一維數(shù)組是按下標順序表示的,我們可以找到在完全二叉樹中的位置
假設(shè)數(shù)組從a[1]開始,例如a[25],25=15 10=(2^4-1)10,那么a[25]是第四個1=5行中的第10個數(shù)