1.二叉樹新節點的插入:create(root,val)
class node:
def __init__(self):
self.data = 0
self.left = none
self.right = none
def create(root, val):
newnode = node()
newnode.data = val
newnode.left = none
newnode.right = none
if root == none:
root = newnode
return root
current = root
while current != none:
parent = current
if val < current.data:
current = current.left
else:
current = current.right
if parent.data > val:
parent.left = newnode
else:
parent.right = newnode
return root
data = [1, 7, 3, 4, 5, 2, 9, 11, 13, 15, 12]
root = none
for i in range(len(data)):
root = create(root, data[i])
2.二叉樹的刪除
1)刪除點為葉子節點,與之相連的父節點指向none
2)刪除節點下只有1棵樹:之間上提替換節點
3)有兩棵樹:1,中序遍歷,左樹最大者上提;2右樹最小者上提。
二叉樹的二叉鍊錶表示
鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。通常的方法是鍊錶中每個結點由三個域組成,資料域和左右指標域,左右指標分別用來給出該結點左孩子和右孩子所在的鏈結點的儲存位址。其結點結構為 其中,data域存放某結點的資料資訊 lchild與rchild分別存...
樹的同構(靜態鍊錶表示二叉樹的應用)
例 給定兩棵樹t1和t2。如果t1可以通過若干次左右孩子互換就變成t2,則我們稱兩棵樹是 同構 的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點a b g的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。現給定兩棵樹,請你判斷它們是否是同構的。輸入格式 輸入給出2棵二叉樹樹的資訊...
二叉樹的表示
二叉鏈表示法 struct bittree typedef struct bittree bitnode typedef struct bittree bitreee int main void include include include 第二種表示方法 三叉鍊錶 三叉鍊錶 typedef st...