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计算面积和周长
声卡驱动正常但是没有声音如何办?声卡驱动正常没声音的解决方法
英伟达显卡驱动如何退回到原来版本?英伟达显卡驱动退回到原来版
重装系统,电脑只有一个C盘如何创建分区
Defender提示错误应用程序MsMpEng.exe无法启动
电脑无法启动或仍在加载如何办?电脑无法启动或仍在加载的解决方
打印机驱动如何卸载删除?卸载打印机驱动干净的教程
电脑没网如何安装网卡驱动?教你没网如何安装网卡驱动的方法
系统32位和62位如何选择:详解它们之间的差异
电脑文件删不掉如何办?四种方法解决
任务管理器快捷键有哪些?任务管理器快捷键大全