2024年1月11日 星期四

print leaves

 def dfs(graph, node, visited, leaf_nodes):

    if node not in visited:

        visited.add(node)

        print(node, end=' ')

        if not graph[node]:  # 檢查節點是否為樹葉

            leaf_nodes.append(node)

        for neighbor in graph[node]:

            dfs(graph, neighbor, visited, leaf_nodes)


# 使用範例


graph = {'A': ['B', 'C'], 'B': ['D', 'E'], 'C': ['F'], 'D': [], 'E': ['G'], 'F': [],'G':[]}

for k, v in graph.items():

    visited = set()

    leaf_nodes = []

    dfs(graph, k, visited, leaf_nodes)

    print(" -- Leaf nodes:", leaf_nodes)


# 執行結果

A B D E G C F  -- Leaf nodes: ['D', 'G', 'F']

B D E G  -- Leaf nodes: ['D', 'G']

C F  -- Leaf nodes: ['F']

D  -- Leaf nodes: ['D']

E G  -- Leaf nodes: ['G']

F  -- Leaf nodes: ['F']

G  -- Leaf nodes: ['G']

沒有留言:

張貼留言