python-数据结构代码 图(邻接表)
Posted yangly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-数据结构代码 图(邻接表)相关的知识,希望对你有一定的参考价值。
class Vertex: def __init__(self,key): self.id=key self.connectedTo={} def addNeighbor(self,nbr,weight=0): self.connectedTo[nbr]=weight def __str__(self): return str(self.id)+‘ connectedTo: ‘+str([x.id for x in self.connectedTo]) def getConnections(self): return self.connectedTo.keys() def getId(self): return self.id def getWeight(self,nbr): return self.connectedTo[nbr] class Graph: def __init__(self): self.vertList={} self.numVertices=0 def addVertex(self,key): self.numVertices=self.numVertices+1 newVertex=Vertex(key) self.vertList[key]=newVertex return newVertex def getVertex(self,n): if n in self.vertList: return self.vertList[n] else: return None def __contains__(self,n): return n in self.vertList def addEdge(self,f,t,cost=0): if f not in self.vertList: nv=self.addVertex(f) if t not in self.vertList: nv=self.addVertex(t) self.vertList[f].addNeighbor(self.vertList[t],cost) def getVertices(self): return self.vertList.keys() def __iter__(self): return iter(self.vertList.values()) g=Graph() for i in range(6): g.addVertex(i) print(g.vertList) g.addEdge(0,1,5) g.addEdge(0,5,2) g.addEdge(1,2,4) g.addEdge(2,3,9) g.addEdge(3,4,7) g.addEdge(3,5,3) g.addEdge(4,0,1) g.addEdge(5,4,8) g.addEdge(5,2,1) for v in g: for w in v.getConnections(): print("(%s,%s)"%(v.getId(),w.getId()))
以上是关于python-数据结构代码 图(邻接表)的主要内容,如果未能解决你的问题,请参考以下文章
求算法,用邻接矩阵和邻接表创建一个图,实现深度和广度搜索,菜单形式,c语言的代码。无向无权的图。
数据结构与算法图 ( 图的存储形式 | 图的基本概念 | 图的表示方式 | 邻接矩阵 | 邻接表 | 图的创建 | 代码示例 )
(王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵邻接表十字链表和邻接多重表)