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)
沒有留言:
張貼留言