Python的赋予边权重


在Python中,给边赋权重是很常见的操作。在这篇文章中,我们将介绍如何使用Python给图的边赋予权重。

# 定义一个有权重的边class Edge:def __init__(self, start, end, weight):self.start = startself.end = endself.weight = weight

上述代码定义了一个Edge类,它包含了起点、终点和权重三个属性。接下来,我们来看一下如何使用它来给图的边赋权重。

# 定义一个图类并初始化class Graph:def __init__(self, V):self.V = Vself.E = []for i in range(V):self.E.append([])# 给边赋权重的方法def addEdge(self, start, end, weight):self.E[start].append(Edge(start, end, weight))

上述代码定义了一个Graph类,它包含了节点个数、边列表等属性。其中 addEdge() 方法就是用来给边赋权重的。我们可以根据起点、终点和权重来构造一个 Edge 对象,然后将其添加到边列表中。

当然,我们也可以把边权重作为 end 节点的属性来赋值,代码如下:

# 定义节点类class Node:def __init__(self, id):self.id = idself.edges = []# 添加边的方法def addEdge(self, to, weight):self.edges.append((to, weight))# 定义一个有向图class Digraph:def __init__(self):self.nodes = []# 添加节点的方法def addNode(self, id):self.nodes.append(Node(id))# 添加边的方法def addEdge(self, frm, to, weight):frmNode = self.nodes[frm]frmNode.addEdge(to, weight)

上述代码中,我们将边权重保存在了 edges 列表中,每个元素都是一个二元组,其中第一个元素为终点,第二个元素为边的权重。这样做的好处是,所有信息都保存在节点中,比较方便查询和操作。

以上就是 Python 中给图的边赋权重的方法,希望对大家有所帮助。


上一篇:java计算面积和周长

下一篇:macos 10.14.4 无法更新


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器