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中,同時,如果該節點有右子節點或左子節點,則將其依次添加到棧中,等待后續訪問。
需要注意的是,二叉樹的遍歷方式有多種,包括前序遍歷、中序遍歷、后序遍歷、層序遍歷等,各種遍歷方式有著不同的應用場景,需要根據具體情況進行選擇。
上一篇python 樹的構建
下一篇vue動態寫表格