c語言二叉樹 雙向鏈表是二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu),這句話不對,為什么?
雙向鏈表是二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu),這句話不對,為什么?事實上,這句話沒有問題,因為二進制數(shù)不一定滿足二進制數(shù),但它在最大程度上是二進制數(shù)。只有完全二叉樹滿足每個非葉節(jié)點都是二叉樹,雙向鏈表與無向樹相同。
雙向鏈表是二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu),這句話不對,為什么?
事實上,這句話沒有問題,因為二進制數(shù)不一定滿足二進制數(shù),但它在最大程度上是二進制數(shù)。只有完全二叉樹滿足每個非葉節(jié)點都是二叉樹,雙向鏈表與無向樹相同。只要鏈表的頭和尾沒有連接,它就是一種特殊的二叉樹——鏈表
鏈表結(jié)構(gòu)的優(yōu)點是易于尋址。二進制列表的缺點是結(jié)構(gòu)開銷隨著數(shù)據(jù)結(jié)構(gòu)的大小而增加(特別是葉節(jié)點有兩個空值,即丟失2*sizeof(ElemType*)
線性結(jié)構(gòu)的優(yōu)點是沒有結(jié)構(gòu)開銷,缺點是不方便插入和刪除?
試用情況的估計取決于問題的大小,即空間復(fù)雜度和時間復(fù)雜度
兩者的相互轉(zhuǎn)換非常簡單,只需了解在順序存儲中:
父節(jié)點(currentpos)=(currentpos-1)/2當(dāng)前節(jié)點,取下限
左(currentpos)=2*currentpos 1
右(currentpos)=2*currentpos 2
左brother=[currentpos-1
右brother=currentpos 1
轉(zhuǎn)換時,我們只需要將鏈?zhǔn)酱鎯Y(jié)構(gòu)的數(shù)據(jù)字段的數(shù)據(jù)復(fù)制到順序存儲結(jié)構(gòu)的相應(yīng)位置即可
6。將ABCDE存儲在完全二叉樹的順序存儲結(jié)構(gòu)中,給出了二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)以及二叉樹的前序、中序和后序遍歷序列