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)

类方法说明:

  1. add_vertex(vertex): 将一个顶点添加到图中。
  2. add_edge(start_vertex, end_vertex): 在两个顶点之间添加一条有向边。
  3. get_neighbors(vertex): 返回给定顶点的所有邻居。
  4. __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']}

这是一个简单的示例,您可以根据需要对代码进行扩展和修改。

Python实现:基于邻接表的定向图数据结构

原文地址: https://www.cveoy.top/t/topic/YJD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录