补充一个python的图数据结构的描述实现,和其他描述方式与这个方式的转换示例。左神教了一种图的通用描述结构,遇到别的情况(比如题目中有别的描述结构)这转换为该种结构然后实现算法。原课程为java实现,我改写为python。
图分为无/有权重有向图、无/有权重无向图。
一.图的描述实现
实现了图、点、边的描述结构:
注意实现中边的结构只需要实现有向边,对于无向边
来说等于两个点有向边彼此拼接
。例如无向边AB等于A到B的有向边与B到A的有向边拼接。
class Graph(object):
'''
图的描述结构
'''
def __init__(self,Index=None,Node=None,Edge=None):
self.index = Index #城市序号
self.node = Node #城市点
self.edge = Edge #城市边
self.nodes = {
} #城市序号、点的哈希表(点的类型为Node)
self.edegs = [] #城市边集(类型为Edge)
class Node(object):
'''
点的数据结构
'''
def __init__(self,value