同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""https://en.wikipedia.org/wiki/Component_(graph_theory)Finding connected components in graph"""test_graph_1 = {0: [1, 2], 1: [0, 3], 2: [0], 3: [1], 4: [5, 6], 5: [4, 6], 6: [4, 5]}test_graph_2 = {0: [1, 2, 3], 1: [0, 3], 2: [0], 3: [0, 1], 4: [], 5: []}def dfs(graph: dict, vert: int, visited: list) -> list:"""Use depth first search to find all verticesbeing in the same component as initial vertex>>> dfs(test_graph_1, 0, 5 * [False])[0, 1, 3, 2]>>> dfs(test_graph_2, 0, 6 * [False])[0, 1, 3, 2]"""visited[vert] = Trueconnected_verts = []for neighbour in graph[vert]:if not visited[neighbour]:connected_verts += dfs(graph, neighbour, visited)return [vert] + connected_vertsdef connected_components(graph: dict) -> list:"""This function takes graph as a parameterand then returns the list of connected components>>> connected_components(test_graph_1)[[0, 1, 3, 2], [4, 5, 6]]>>> connected_components(test_graph_2)[[0, 1, 3, 2], [4], [5]]"""graph_size = len(graph)visited = graph_size * [False]components_list = []for i in range(graph_size):if not visited[i]:i_connected = dfs(graph, i, visited)components_list.append(i_connected)return components_listif __name__ == "__main__":import doctestdoctest.testmod()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。