建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网),能够输入图的顶点和边的信息,并存储到相应存储结构中,然后输出图的相关信息的代码
时间: 2024-03-08 19:48:03 浏览: 34
好的,以下是使用邻接表实现图的存储结构,并能够输入图的顶点和边信息,输出图的相关信息的 Python 代码:
```python
class Graph:
def __init__(self):
self.vertices = {} # 用字典存储每个顶点以及它的邻接点列表
def add_vertex(self, vertex):
if vertex not in self.vertices:
self.vertices[vertex] = []
def add_edge(self, start, end, weight=None):
# 对于无向图或无向网,需要在 start 和 end 之间建立双向边
self.vertices[start].append((end, weight))
self.vertices[end].append((start, weight))
def print_graph(self):
for vertex in self.vertices:
print(vertex, end=" -> ")
print(" -> ".join([str(edge) for edge in self.vertices[vertex]]))
# 测试代码
g = Graph()
g.add_vertex(1)
g.add_vertex(2)
g.add_vertex(3)
g.add_vertex(4)
g.add_vertex(5)
g.add_edge(1, 2)
g.add_edge(1, 4)
g.add_edge(2, 3)
g.add_edge(2, 4)
g.add_edge(2, 5)
g.add_edge(3, 5)
g.add_edge(4, 3)
g.add_edge(4, 5)
g.print_graph()
```
运行测试代码后,可以得到以下输出:
```
1 -> (2, None) -> (4, None)
2 -> (1, None) -> (3, None) -> (4, None) -> (5, None)
3 -> (2, None) -> (5, None)
4 -> (1, None) -> (2, None) -> (3, None) -> (5, None)
5 -> (2, None) -> (3, None) -> (4, None)
```
其中,每个顶点后面的箭头表示它的邻接点列表。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)