Python實現二叉樹資料結構程式


樹是一種資料結構,由節點組成。節點由邊連線。最頂端的節點稱為根節點,最底端的節點稱為葉節點。葉節點是沒有子節點的節點。

二叉樹

二叉樹是一種樹,其中每個節點最多可以包含2個子節點。這意味著每個節點可以有0個、1個或2個子節點,但不能超過2個。二叉樹中的每個節點包含三個欄位:

  • 資料

  • 指向左子節點的指標

  • 指向右子節點的指標

完全二叉樹 - 如果除最後一層外,所有層都已完全填充,並且所有節點都應儘可能靠左,則稱二叉樹為完全二叉樹。

嚴格/真二叉樹 - 如果每個節點都有零個或兩個子節點,則稱二叉樹為嚴格或真二叉樹。

滿二叉樹 - 如果所有節點都有兩個子節點並且所有葉節點都在同一層,則稱二叉樹為滿二叉樹。

平衡二叉樹 - 如果左子樹的高度和右子樹的高度之差最多為一(0或1),則稱二叉樹為平衡二叉樹。

從給定陣列構造二叉樹

示例

如果根節點位於第i個索引處,則左子節點將位於第(2*i+1)個索引處,右子節點將位於第(2*i-1)個索引處。我們將使用此概念從陣列元素構造二叉樹。

class TreeNode:
   def __init__(self,data,left=None,right=None):
      self.data=data
      self.left=left
      self.right=right
def insert_into_tree(root,arr,i,l):
   if i<l:
      print(arr[i])
      temp=TreeNode(arr[i])
      root=temp
      root.left=insert_into_tree(root,arr,i*2+1,l)
      root.right=insert_into_tree(root,arr,i*2+2,l)
   return root
arr=[1,2,3,4,5]
i=0
l=len(arr)
root=TreeNode(arr[0])
insert_into_tree(root,arr,i,l)

輸出

1
2
4
5
3

更新於:2023年4月24日

瀏覽量:290

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.