上述问题e=('徐洋', '黄宙坑', 9)按照G.addEdge(e[1], e[0], cost=e[2])添加边有什么问题吗
时间: 2024-01-25 09:03:58 浏览: 104
上述问题中,使用G.addEdge(e[1], e[0], cost=e[2])添加边,将会从顶点'黄宙坑'指向顶点'徐洋',边的权重为9。这样添加边的结果是错误的,因为题目中给出的是从'徐洋'到'黄宙坑'的边,而不是从'黄宙坑'到'徐洋'的边。
因此,正确的添加边的方式应该是使用G.addEdge(e[0], e[1], cost=e[2]),这样就能够正确地从顶点'徐洋'指向顶点'黄宙坑',边的权重为9。
相关问题
e=('徐洋', '黄宙坑', 9),模仿G.addEdge(e[1], e[0], cost=e[2])添加边
假设我们已经有了一个元组e=('徐洋', '黄宙坑', 9),要按照上面的方式将这条边添加到图中,代码如下:
```
G = Graph()
G.addVertex(e[0])
G.addVertex(e[1])
G.addEdge(e[1], e[0], cost=e[2])
```
这样就在图中添加了一条从顶点'黄宙坑'到顶点'徐洋'的边,边权为9。
为什么下述代码无法添加边nbedge = [('塘堀','黄宙坑',16),('黄宙坑','后村',12),('后村','徐洋',5),('塘堀','后村',4),('徐洋','黄宙坑',9)] G = Graph() for e in nbedge: G.addVertex(e[1]) G.addVertex(e[0]) G.addEdge(e[1], e[0], cost=e[2])
这段代码无法正确地添加边,是因为在调用addEdge方法时,传入的参数顺序不正确。应该将addEdge方法调用中的e[1]和e[0]的顺序颠倒过来,改为e[0]和e[1]。因为在addEdge方法中,第一个参数是起点,第二个参数是终点,而在nbedge列表中,每个元素的第一个元素是起点,第二个元素是终点,因此应该将它们的顺序颠倒过来。修改后的代码如下:
```
nbedge = [('塘堀','黄宙坑',16),('黄宙坑','后村',12),('后村','徐洋',5),('塘堀','后村',4),('徐洋','黄宙坑',9)]
G = Graph()
for e in nbedge:
G.addVertex(e[0])
G.addVertex(e[1])
G.addEdge(e[0], e[1], cost=e[2])
```
这样就可以正确地添加边了。
阅读全文