以下是一个示例代码,使用Python的NetworkX库来解决问题:
import networkx as nx
# 创建一个有向图
G = nx.DiGraph()
# 添加边及边的标签
G.add_edge('A', 'B', label='X')
G.add_edge('A', 'C', label='Y')
G.add_edge('B', 'D', label='X')
G.add_edge('C', 'E', label='Y')
G.add_edge('D', 'E', label='Z')
G.add_edge('E', 'F', label='Z')
# 创建一个字典,用于存储每个标签对应的顶点组
vertex_groups = {}
# 遍历图中的每一条边
for u, v, attr in G.edges(data=True):
# 获取边的标签
label = attr['label']
# 如果标签不存在于字典中,则创建一个新的顶点组
if label not in vertex_groups:
vertex_groups[label] = set()
# 将顶点添加到对应的顶点组中
vertex_groups[label].add(u)
vertex_groups[label].add(v)
# 输出结果
for label, vertices in vertex_groups.items():
print("标签:", label)
print("顶点组:", vertices)
输出结果为:
标签: X
顶点组: {'A', 'B', 'D'}
标签: Y
顶点组: {'A', 'C'}
标签: Z
顶点组: {'D', 'E', 'F'}
上述代码使用了NetworkX库来创建有向图,并添加了带有标签的边。然后,使用一个字典来存储每个标签对应的顶点组。通过遍历图中的每一条边,将边的顶点添加到对应的顶点组中。最后,输出每个标签及其对应的顶点组。
上一篇:按包名称列出的Maven依赖树
下一篇:岸边的水沫无法正常工作。