输入无向图的顶点数、边数及各条边的顶点对,建立用邻接表表示的无向图。代码展示
时间: 2024-02-03 21:12:32 浏览: 33
以下是使用邻接表表示无向图的代码实现,输入顶点数、边数及各条边的顶点对,然后输出邻接表表示的无向图:
```python
# 定义邻接表节点
class AdjNode:
def __init__(self, data):
self.vertex = data
self.next = None
# 定义无向图类
class Graph:
def __init__(self, vertices):
self.V = vertices
self.graph = [None] * self.V
# 添加边
def add_edge(self, src, dest):
node = AdjNode(dest)
node.next = self.graph[src]
self.graph[src] = node
node = AdjNode(src)
node.next = self.graph[dest]
self.graph[dest] = node
# 打印邻接表
def print_graph(self):
for i in range(self.V):
print("顶点 " + str(i) + " 的邻接表:", end="")
temp = self.graph[i]
while temp:
print(" -> {}".format(temp.vertex), end="")
temp = temp.next
print(" \n")
# 主函数
if __name__ == "__main__":
V = int(input("请输入顶点数:"))
E = int(input("请输入边数:"))
g = Graph(V)
for i in range(E):
src, dest = map(int, input("请输入第{}条边的两个顶点:".format(i+1)).split())
g.add_edge(src, dest)
g.print_graph()
```
我们可以通过以下方式进行测试:
```
请输入顶点数:5
请输入边数:7
请输入第1条边的两个顶点:0 1
请输入第2条边的两个顶点:0 4
请输入第3条边的两个顶点:1 2
请输入第4条边的两个顶点:1 3
请输入第5条边的两个顶点:1 4
请输入第6条边的两个顶点:2 3
请输入第7条边的两个顶点:3 4
```
输出结果如下:
```
顶点 0 的邻接表: -> 1 -> 4
顶点 1 的邻接表: -> 0 -> 2 -> 3 -> 4
顶点 2 的邻接表: -> 1 -> 3
顶点 3 的邻接表: -> 1 -> 2 -> 4
顶点 4 的邻接表: -> 0 -> 1 -> 3
```
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)