def make_tree(edges):
"""Constructs a tree graph from a set of (vertex,vertex) pairs.
Args:
edges: A list or set of unordered (vertex, vertex) pairs.
Returns: A tuple with elements:
V: Number of vertices.
E: Number of edges.
grid: a 3 x E grid of (edge, vertex, vertex) triples.
"""
assert all(isinstance(edge, tuple) for edge in edges)
edges = [tuple(sorted(edge)) for edge in edges]
edges.sort()
E = len(edges)
grid = np.zeros([3, E], np.int32)
for e, (v1, v2) in enumerate(edges):
grid[:, e] = [e, v1, v2]
return grid
评论列表
文章目录