给上述代码一个运行实例
时间: 2024-02-09 16:08:39 浏览: 67
一个代码例子
好的,以下是一个完整的运行实例:
```python
# 初始化朋友关系列表
friend_list = [(0, 1), (2, 3), (1, 2)]
# 初始化并查集
parent = {}
for i in range(len(friend_list)):
parent[i] = i
# 合并朋友关系所在的团伙
for f1, f2 in friend_list:
root1 = find_root(parent, f1)
root2 = find_root(parent, f2)
if root1 != root2:
parent[root1] = root2
# 统计每个团伙的人数
group_sizes = {}
for i in range(len(friend_list)):
root = find_root(parent, i)
if root not in group_sizes:
group_sizes[root] = 1
else:
group_sizes[root] += 1
# 输出每个团伙的人数
for root, size in group_sizes.items():
print("团伙{}有{}个人".format(root, size))
# 找到节点的根节点
def find_root(parent, node):
while parent[node] != node:
node = parent[node]
return node
```
运行结果如下:
```
团伙1有3个人
```
这个结果符合预期,因为朋友关系列表中的人被分成了两个团伙:0、1、2和3。因为2和3被合并到了1所在的团伙,所以只有一个团伙包含了所有人。
阅读全文