91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Python TreeNode如何實現樹的深度優先和廣度優先搜索

小樊
81
2024-08-17 16:27:38
欄目: 編程語言

在Python中,可以通過遞歸或者棧來實現樹的深度優先搜索,通過隊列來實現樹的廣度優先搜索。

首先,定義一個TreeNode類表示樹節點:

class TreeNode:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None

接下來,定義一個函數來實現深度優先搜索:

def dfs(node):
    if node is None:
        return
    print(node.value)
    dfs(node.left)
    dfs(node.right)

定義一個函數來實現廣度優先搜索:

from collections import deque

def bfs(node):
    if node is None:
        return
    queue = deque()
    queue.append(node)
    while queue:
        current = queue.popleft()
        print(current.value)
        if current.left:
            queue.append(current.left)
        if current.right:
            queue.append(current.right)

接下來,創建一個二叉樹并測試深度優先搜索和廣度優先搜索:

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)
root.right.right = TreeNode(7)

print("深度優先搜索:")
dfs(root)

print("\n廣度優先搜索:")
bfs(root)

以上代碼演示了如何實現樹的深度優先搜索和廣度優先搜索。深度優先搜索會先遍歷完整的左子樹,然后再遍歷右子樹,而廣度優先搜索會先遍歷同一層的所有節點,再遍歷下一層的節點。

0
都兰县| 岑巩县| 赣榆县| 华池县| 无锡市| 弋阳县| 明光市| 湟源县| 楚雄市| 台北市| 措美县| 长沙市| 桂阳县| 满洲里市| 盐池县| 易门县| 鱼台县| 陆川县| 苍南县| 资讯| 西城区| 阿荣旗| 茌平县| 徐汇区| 房山区| 汶川县| 湾仔区| 普兰县| 南木林县| 开鲁县| 体育| 湾仔区| 资兴市| 乌拉特中旗| 秦安县| 吴江市| 安岳县| 抚宁县| 定西市| 正阳县| 景宁|