二叉樹的前序、中序和後序序列中的任何乙個都不能唯一確定一棵二叉樹。
二叉樹的構建主要有兩大種方法:
第一種是根據前序+中序或者後序+中序來唯一確定二叉樹的結構;(這個課本上都有講)
第二種是根據二叉樹對應的擴充二叉樹的先序或者後序序列來確定。(本文主要討論部分)
上面說的第二種,有些文件資料甚至課本裡說根據擴充二叉樹的任意乙個遍歷序列就能唯一確定這棵二叉樹。這個說法是錯誤的。
首先擴充二叉樹的先序遍歷肯定可以,網上查到的基本都是這種。
中序遍歷不可以,中序遍歷輸入的二叉樹不具有唯一性。參考:
後序遍歷是可以的,參考:
關於平衡二叉樹的構建
最近在玩資料結構搞到平衡二叉樹部分覺得平衡二叉樹的構建,分享一下自己的二叉樹構建 首先是樹的節點的構建 public class balancenode public int getvalue public void setvalue int value public void add balanc...
構建二叉樹 遍歷二叉樹
陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...
構建二叉樹
前序遍歷構建二叉樹是根據根節點 左節點 右節點的方式輸入資料,針對乙個節點來說,首先輸入的是根節點,根節點之後的數值應該是其左子節點,之後是右節點,如果是遞迴,則首先是一直設定左節點,之後再依次設定右節點。之前在看二叉樹過程中,見過最多的是輸入個位數字構建二叉樹,今天看到乙個可以輸入多個數字的輸入方...