Python实现图的邻接链表存储,包括建立、输出,输出指定顶点的边信息
时间: 2024-03-10 20:50:18 浏览: 105
好的,以下是Python实现图的邻接链表存储的基本步骤:
1. 定义图的节点类,包含顶点编号和指向其相邻顶点的指针。
```python
class Node:
def __init__(self, vertex):
self.vertex = vertex
self.next = None
```
2. 定义图的邻接链表类,包含顶点个数和指向顶点链表头的指针列表。
```python
class Graph:
def __init__(self, n):
self.n = n
self.adjList = [None] * n
```
3. 初始化图的邻接链表,将每个顶点链表头指针初始化为 None。
```python
def initGraph(G):
for i in range(G.n):
G.adjList[i] = None
```
4. 添加边,对于每个边 (u, v),在顶点 u 的链表中添加一个节点,表示顶点 u 与顶点 v 相邻,边的权值为 w。
```python
def addEdge(G, u, v, w):
newNode = Node(v)
newNode.next = G.adjList[u]
G.adjList[u] = newNode
```
5. 输出图的邻接链表,遍历每个顶点链表,输出与该顶点相邻的所有顶点及边的信息。
```python
def printGraph(G):
for i in range(G.n):
print("顶点 {}: ".format(i), end="")
p = G.adjList[i]
while p is not None:
print("({}, {}) ".format(p.vertex, p.weight), end="")
p = p.next
print()
```
6. 输出指定顶点的边信息,遍历该顶点链表,输出与该顶点相邻的所有顶点及边的信息。
```python
def printEdges(G, u):
print("顶点 {} 的边信息: ".format(u), end="")
p = G.adjList[u]
while p is not None:
print("({}, {}) ".format(p.vertex, p.weight), end="")
p = p.next
print()
```
以上就是Python实现图的邻接链表存储的基本步骤,可以根据需要进行适当的修改和扩展。
阅读全文