欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 樹的構(gòu)建

劉柏宏2年前8瀏覽0評論

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)建樹的常見方法之一。