如何確定二叉樹的根節(jié)點 判斷題:二叉樹可以沒有根節(jié)點?
判斷題:二叉樹可以沒有根節(jié)點?在前序線索的二叉樹中,如果節(jié)點有子節(jié)點,則左子節(jié)點(如果沒有,則右子節(jié)點)是其前序后繼節(jié)點,中間的前序和后繼節(jié)點是鏡像節(jié)點。詳細內(nèi)容請參考《數(shù)據(jù)結(jié)構(gòu)》教材,如果posto
判斷題:二叉樹可以沒有根節(jié)點?
在前序線索的二叉樹中,如果節(jié)點有子節(jié)點,則左子節(jié)點(如果沒有,則右子節(jié)點)是其前序后繼節(jié)點,中間的前序和后繼節(jié)點是鏡像節(jié)點。詳細內(nèi)容請參考《數(shù)據(jù)結(jié)構(gòu)》教材,如果postorder線索的節(jié)點中有右子樹,右指針字段存儲的是右子節(jié)點的地址,而不是線索,但postorder是父節(jié)點。請注意,它是一個二進制列表,只能從父級開始求解
完全二叉樹是一個二叉樹和一個非線性結(jié)構(gòu)。完全二叉樹是一種高效的數(shù)據(jù)結(jié)構(gòu)。堆是一個完全二叉樹或接近完全二叉樹,所以它是高效的。例如,常用的排序算法、Dijkstra算法、PRIM算法等都需要對堆進行優(yōu)化。幾乎每一次,二叉排序樹的效率都必須通過平衡來提高,平衡是建立在完全二叉樹的基礎(chǔ)上的。
只有一個根節(jié)點的必定是線性結(jié)構(gòu)或者二叉樹,對嗎?為什么?
讓具有n個節(jié)點的二叉樹的形式有f(n),那么f(0)=0,f(1)=1。四節(jié)點二叉樹包含一個根節(jié)點和三個子節(jié)點,可分為左子樹中的0節(jié)點和右子樹中的3節(jié)點。二叉樹的形式有f(0)f(3),左子樹有1個節(jié)點,右子樹有2個節(jié)點。二叉樹的形式有f(1)f(2)左子樹有2個節(jié)點,右子樹有1個節(jié)點。此時,二叉樹的形式在左子樹中有f(2)f(1)3個節(jié)點,在右子樹中有0個節(jié)點。此時,二叉樹的形式有f(3)f(0),因此f(4)=2F(0)2F(1)2F(2)2F(3),并且f(2)=2F(0)2F(1)=2F(3)=2F(0)2F(1)2F(2)=6。因此,f(4)=18,即有18種具有4個節(jié)點的二叉樹。