【正文】
ode { datatype data。 ? 已知一棵二叉樹的后根序遍歷序列為 GDEBHFCA,中根序遍歷序列為DGBEAF HC,試畫出該二叉樹 。 }JD。 struct node *lchild, *rchild。 }JD。 //t[0]不用 樹的存儲結(jié)構(gòu) a b c d e f h g i 6 0 1 2 3 4 5 7 8 9 a c d e f g h i b data fc 2 3 ^ 4 5 ^ ^ 9 7 8 ^ 6 ^ ^ ^ ^ ^ 如何找雙親結(jié)點 樹的存儲結(jié)構(gòu) ?帶雙親的孩子鏈表 6 1 2 3 4 5 7 8 9 a c d e f g h i b data fc 2 3 4 5 9 7 8 6 ^ ^ ^ ^ ^ ^ ^ ^ ^ 0 1 2 2 3 5 5 5 1 parent a b c d e f h g i 樹的存儲結(jié)構(gòu) ? 孩子兄弟表示法(二叉樹表示法) –實現(xiàn):用二叉鏈表作樹的存儲結(jié)構(gòu),鏈表中每個結(jié)點的兩個指針域分別指向其第一個孩子結(jié)點和下一個兄弟結(jié)點 –特點 187。 表頭結(jié)點: typedef struct tnode { datatype data。結(jié)點同構(gòu):結(jié)點的指針個數(shù)相等,為 樹的度 D 187。 int parent。二叉樹 2 回顧 本次課程內(nèi)容 ?樹的定義及術(shù)語 ?二叉樹的定義及基本概念 (重點 ) ?樹與二叉樹的存儲結(jié)構(gòu) ?樹與二叉樹的遍歷 (重點) 樹是一類重要的非線性數(shù)據(jù)結(jié)構(gòu),是以分支關(guān)系定義的層次結(jié)構(gòu) –定義 ? 定義:樹 (tree)是 n(n0)個結(jié)點的有限集 T, 其中: –有且僅有一個特定的結(jié)點,稱為樹的 根 (root) –當 n1時,其余結(jié)點可分為 m(m0)個 互不相交 的有限集T1,T2,……Tm, 其中每一個集合本身又是一棵樹,稱為根的子樹 (subtree) ? 特點: –樹中至少有一個結(jié)點 ——根 –樹中各子樹是互不相交的集合 樹的定義 A 只有根結(jié)點的樹 A B C D E F G H I J K L M 有子樹的樹 根 子樹 樹的定義 –基本術(shù)語 ? 結(jié)點 (node)——表示樹中的元素,包括數(shù)據(jù)項及若干指向其子樹的分支 ? 結(jié)點的度 (degree)——結(jié)點擁有的子樹數(shù) ? 葉子 (leaf)——度為 0的結(jié)點 ? 孩子 (child)——結(jié)點子樹的根