阅读量:0
TreeNode类通常用于表示树结构中的节点,而最小生成树算法通常使用其他数据结构来实现,例如Prim算法和Kruskal算法。
下面是一个简单的示例代码,用于实现Prim算法来生成最小生成树:
import heapq class TreeNode: def __init__(self, val): self.val = val self.children = [] def prim(graph): n = len(graph) visited = [False] * n min_heap = [(0, 0, None)] # (cost, node, parent) mst = [None] * n while min_heap: cost, node, parent = heapq.heappop(min_heap) if visited[node]: continue visited[node] = True if parent is not None: mst[node] = parent.children.append(TreeNode(node)) for neighbor, weight in graph[node]: if not visited[neighbor]: heapq.heappush(min_heap, (weight, neighbor, node)) return mst
在这个示例中,我们使用TreeNode类来表示最小生成树的节点,使用prim函数来实现Prim算法。通过传入一个邻接表形式的图数据结构,我们可以生成最小生成树的节点。