【华为od机试】找朋友 python
时间: 2023-08-24 22:02:14 浏览: 171
找朋友问题是一个典型的图搜索问题,可以使用深度优先搜索(DFS)或广度优先搜索(BFS)来解决。在python中,可以使用递归实现DFS,也可以使用队列实现BFS。
下面是使用DFS解答找朋友问题的示例代码:
```python
def find_friends(adj_list, start, visited):
visited[start] = True
friends = [start]
for friend in adj_list[start]:
if not visited[friend]:
friends.extend(find_friends(adj_list, friend, visited))
return friends
def main():
# 输入朋友关系图,假设有5个节点,使用邻接表表示
adj_list = {0: [1, 2], 1: [0, 3], 2: [0, 4], 3: [1], 4: [2]}
start_node = 0
visited = [False] * len(adj_list)
friends = find_friends(adj_list, start_node, visited)
print(friends)
if __name__ == '__main__':
main()
```
运行以上代码,会输出从节点0开始能够找到的所有朋友节点:[0, 1, 3, 2, 4]。
以上是使用DFS解答找朋友问题的思路和示例代码,希望能对你有帮助。
阅读全文