基于python实现无向带权图
时间: 2024-04-30 21:23:29 浏览: 152
python由邻接矩阵生成无/有向图.py
以下是一个基于Python实现无向带权图的示例代码:
```python
class Graph:
def __init__(self, num_nodes):
self.num_nodes = num_nodes
self.adj_matrix = [[0 for i in range(num_nodes)] for j in range(num_nodes)]
def add_edge(self, src, dest, weight):
self.adj_matrix[src][dest] = weight
self.adj_matrix[dest][src] = weight
def get_edge(self, src, dest):
return self.adj_matrix[src][dest]
def get_adjacent_vertices(self, vertex):
adjacent_vertices = []
for i in range(self.num_nodes):
if self.adj_matrix[vertex][i] > 0:
adjacent_vertices.append(i)
return adjacent_vertices
def display(self):
for i in range(self.num_nodes):
for j in range(self.num_nodes):
if self.adj_matrix[i][j] > 0:
print("{} -- {} --> {}".format(i, self.adj_matrix[i][j], j))
g = Graph(4)
g.add_edge(0, 1, 1)
g.add_edge(0, 2, 2)
g.add_edge(1, 2, 3)
g.add_edge(2, 3, 4)
g.display()
```
该示例代码定义了一个名为Graph的类,它具有以下方法:
- `__init__`:构造函数,用于创建一个新的图对象。
- `add_edge`:将一条新的边添加到图中。
- `get_edge`:获取两个顶点之间的边权重。
- `get_adjacent_vertices`:获取与一个顶点相邻的所有顶点。
- `display`:打印图的邻接矩阵表示。
该示例代码创建了一个新的无向带权图,并将四个顶点添加到其中。然后,代码添加了四条边,并使用`display`方法打印该图的邻接矩阵表示。
阅读全文