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
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP