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

python 樹結構遍歷

老白2年前8瀏覽0評論

Python是一種廣泛使用的編程語言,可用于多種用途,包括構建樹結構。樹結構是一種層級數據結構,它具有父子關系。在構建樹結構時,您需要執行遍歷操作來訪問結點。Python提供了多種方法來遍歷樹結構,本文將簡要介紹其中的一些方法。

# 定義一個樹結點類
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
# 創建一棵二叉樹
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)

前序遍歷

前序遍歷是指先遍歷根結點,再遍歷左子樹,最后遍歷右子樹。在Python中,可以使用遞歸或棧來實現前序遍歷。遞歸實現如下:

def preorderTraversal(root):
if not root:
return []
res = []
res.append(root.val)
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
print(preorderTraversal(root))

中序遍歷

中序遍歷是指先遍歷左子樹,再遍歷根結點,最后遍歷右子樹。在Python中,可以使用遞歸或棧來實現中序遍歷。遞歸實現如下:

def inorderTraversal(root):
if not root:
return []
res = []
res += inorderTraversal(root.left)
res.append(root.val)
res += inorderTraversal(root.right)
return res
print(inorderTraversal(root))

后序遍歷

后序遍歷是指先遍歷左子樹,再遍歷右子樹,最后遍歷根結點。在Python中,可以使用遞歸或棧來實現后序遍歷。遞歸實現如下:

def postorderTraversal(root):
if not root:
return []
res = []
res += postorderTraversal(root.left)
res += postorderTraversal(root.right)
res.append(root.val)
return res
print(postorderTraversal(root))

層序遍歷

層序遍歷是指按照從上到下、從左到右的順序遍歷樹結構。在Python中,可以使用隊列實現層序遍歷:

def levelOrder(root):
if not root:
return []
res = []
queue = [root]
while queue:
level = []
for i in range(len(queue)):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level)
return res
print(levelOrder(root))

總結

以上是Python中常用的樹結構遍歷方法。您可以根據具體情況選擇不同的遍歷方法來訪問樹結構的結點。