用鏈式資料結構表示有根樹的問題。
樹的結點用物件表示,每個結點都含有乙個關鍵字key。
二叉樹:
屬性p:指標指向父結點
left:指向左孩子
right:指向右孩子
如果x.p=nil,則x是根結點
如果結點x沒有左孩子,則x.left=nil。右孩子的情況類似。
屬性t.root指向整棵樹t的根結點。如果t.root=nil.則該樹為空。
分支無限制的有根樹:
有乙個巧妙的方法可以用來表示孩子數任意的樹。對任意n個結點的有根樹,只需要o(n)的儲存空間。
左孩子右兄弟表示法:
每個結點中包含:
1.x.left_child指向x最左邊的孩子結點。
2.x.right-sibling指向x右側相鄰的兄弟結點。
演算法導論10 4有根樹的表示習題
10.4 2 偽 x t.root tree key print x print x.key if x.left nil tree key print x.left if x.right nil tree key print x.right end 10.4 3 思路 前序遍歷思想 初始時把根元素壓...
《演算法導論》筆記 第10章 10 4 有根樹的表示
用二叉數表示有多個子女的樹 left x 表示最左邊的兒子,right x 右邊的兄弟。10.4 1 畫出由下列域表示的 根在下標6處的二叉樹。10.4 2 請寫出乙個o n 時間的遞迴過程,在給定含n個結點的二叉樹後,它可以將樹中的每個結點的關鍵字輸出來。void dfs int x 10.4 3...
左孩子右兄弟表示法的任意有根樹的遍歷
演算法導論 p.248 10.4 4題目描述 對於乙個含n個結點的任意有根樹,寫出乙個o n 時間的過程,輸出其所有關鍵字,該樹以左孩子右兄弟表示法儲存。與二叉樹的遍歷類似 class tree def init self,val self.val val self.left child none ...