0
点赞
收藏
分享

微信扫一扫

python 无向图求深度、广度


 

python 无向图求深度、广度_广度优先搜索

python 无向图求深度、广度_广度优先搜索_03

def dfs(v, visited, path, adj_matrix):
    visited[v] = True
    path.append(v)
    for w in range(len(adj_matrix)):
        if adj_matrix[v][w] != 0 and not visited[w]:
            dfs(w, visited, path, adj_matrix)
    return path


from collections import deque
def bfs(start, adj_matrix):
    visited = [False] * len(adj_matrix)
    queue = deque()
    queue.append(start)
    visited[start] = True
    path = []
    while queue:
        v = queue.popleft()
        path.append(v)
        for w in range(len(adj_matrix)):
            if adj_matrix[v][w] != 0 and not visited[w]:
                queue.append(w)
                visited[w] = True
    return path


# 示例输入
adj_matrix = [
    [0, 1, 1, 0, 0],
    [1, 0, 0, 1, 1],
    [1, 0, 0, 0, 0],
    [0, 1, 0, 0, 0],
    [0, 1, 0, 0, 0]
]

# 深度优先搜索
start_vertex = 0
visited = [False] * len(adj_matrix)
dfs_path = dfs(start_vertex, visited, [], adj_matrix)
print("DFS路径:", dfs_path)

# 广度优先搜索
bfs_path = bfs(start_vertex, adj_matrix)
print("BFS路径:", bfs_path)

举报

相关推荐

0 条评论