Python实现:基于邻接表的定向图数据结构
Python实现:基于邻接表的定向图数据结构
本文介绍如何使用Python和邻接表实现一个定向图数据结构。以下代码示例展示了如何添加顶点、添加边、获取邻居和打印图。
class DirectedGraph:
def __init__(self):
self.graph = {}
def add_vertex(self, vertex):
if vertex not in self.graph:
self.graph[vertex] = []
def add_edge(self, start_vertex, end_vertex):
if start_vertex in self.graph:
self.graph[start_vertex].append(end_vertex)
else:
print('Start vertex doesn\'t exist in the graph.')
def get_neighbors(self, vertex):
if vertex in self.graph:
return self.graph[vertex]
else:
print('Vertex doesn\'t exist in the graph.')
def __str__(self):
return str(self.graph)
类方法说明:
add_vertex(vertex): 将一个顶点添加到图中。add_edge(start_vertex, end_vertex): 在两个顶点之间添加一条有向边。get_neighbors(vertex): 返回给定顶点的所有邻居。__str__(): 以字符串形式返回整个图的邻接列表。
使用示例:
# 创建一个有向图实例
graph = DirectedGraph()
# 添加顶点
graph.add_vertex('A')
graph.add_vertex('B')
graph.add_vertex('C')
# 添加边
graph.add_edge('A', 'B')
graph.add_edge('B', 'C')
graph.add_edge('C', 'A')
# 获取邻居
print(graph.get_neighbors('A')) # 输出 ['B']
print(graph.get_neighbors('B')) # 输出 ['C']
print(graph.get_neighbors('C')) # 输出 ['A']
# 打印图的邻接列表
print(graph) # 输出 {'A': ['B'], 'B': ['C'], 'C': ['A']}
这是一个简单的示例,您可以根据需要对代码进行扩展和修改。
原文地址: https://www.cveoy.top/t/topic/YJD 著作权归作者所有。请勿转载和采集!