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

python 樹型結構

錢衛國2年前9瀏覽0評論

Python中樹型結構是一種重要的數據類型,它可以幫助我們將復雜的數據集合組織成更為簡潔、有序的結構。Python提供了多種樹型數據結構,包括二叉樹、堆、字典樹等,下面我們將通過代碼示例來介紹其中的二叉樹。

# 定義二叉樹節點類
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 構建二叉樹
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 遍歷二叉樹
def preorderTraversal(root):
if not root:
return []
res = []
stack = [root]
while stack:
node = stack.pop()
res.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return res
print(preorderTraversal(root)) # 輸出[1, 2, 4, 5, 3]

在上面的代碼中,我們首先定義了一個TreeNode類,用于表示二叉樹的節點。接著,根據二叉樹的定義,我們構建了一棵二叉樹,并使用前序遍歷的方式遍歷了整棵樹。具體來說,我們使用一個棧來維護待訪問的節點,每次從棧中彈出當前節點,并將該節點的值添加到遍歷結果res中,同時,如果該節點有右子節點或左子節點,則將其依次添加到棧中,等待后續訪問。

需要注意的是,二叉樹的遍歷方式有多種,包括前序遍歷、中序遍歷、后序遍歷、層序遍歷等,各種遍歷方式有著不同的應用場景,需要根據具體情況進行選擇。