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