2024年1月11日 星期四

tree Traversal

 tree = {

    1: [2, 3],

    2: [4, 5],

    3: [6],

    4: [],

    5: [],

    6: []

}


# 遍歷樹狀結構(深度優先搜尋)

def dfs_traversal(tree, visited,node):

    if node not in visited:

        print(node,end=' ')

        visited.append(node)

        for nb in tree[node]:

            dfs_traversal(tree, visited,nb)


# 遍歷樹狀結構(廣度優先搜尋)


visited = []

queue = []

def bfs_traversal(tree,visited,node):

    queue.append(node)

    while queue:

        node = queue.pop(0)

        if node not in visited:

            print(node,end=' ')

            visited.append(node)

            for nb in tree[node]:

                queue.append(nb)


# 新增節點

tree[7] = [8, 9]

tree[8] = []

tree[9] = []


# 刪除節點

# del tree[7]


# 修改節點的子節點

tree[1] = [2, 3, 7]


# 印出深度優先搜尋結果

visited=[]

print("DFS Traversal:")

dfs_traversal(tree,visited,1)


# 印出廣度優先搜尋結果

visited = []

print("\nBFS Traversal:")

bfs_traversal(tree,visited,1)

沒有留言:

張貼留言