Python 是一種高級編程語言,擁有強(qiáng)大的工具和庫。其中包括樹數(shù)據(jù)結(jié)構(gòu)。樹是由節(jié)點和邊構(gòu)成的集合,其中有一個根節(jié)點和零個或多個子節(jié)點。樹通常用于表示層次結(jié)構(gòu),例如文件系統(tǒng)、組織結(jié)構(gòu)和計算機(jī)科學(xué)中的搜索算法。
class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None def insert(self, val): if self.val: if val< self.val: if self.left is None: self.left = TreeNode(val) else: self.left.insert(val) elif val >self.val: if self.right is None: self.right = TreeNode(val) else: self.right.insert(val) else: self.val = val
如上所示,我們定義了一個 TreeNode 類。每個節(jié)點由一個值、左子節(jié)點和右子節(jié)點組成。我們還定義了一個 insert() 方法,用于在樹中插入元素。該方法采用遞歸算法來查找空閑位置以插入新元素。
讓我們創(chuàng)建一個測試程序,以演示如何構(gòu)建樹:
root = TreeNode(1) root.insert(2) root.insert(3) root.insert(4) root.insert(5)
這段代碼創(chuàng)建了一個具有五個節(jié)點的樹。它從根節(jié)點開始,然后依次將值為2、3、4和5的節(jié)點插入。這個樹的形狀類似于下圖:
1
├── 2
│ ├── 3
│ │ ├── 4
│ │ │ └── 5
在構(gòu)建樹時,我們可以使用遞歸方法來處理節(jié)點。當(dāng)調(diào)用 insert() 方法時,它會遞歸到左子樹或右子樹,直到找到空閑的位置以插入新節(jié)點。這種方法實現(xiàn)了快速插入和搜索,是構(gòu)建樹的常見方法之一。