import sys
class Vertex:
def __init__(self, key):
self.id = key
self.connectedTo = {}
self.distance = sys.maxsize
self.predecessor = None
self.color = 'White'
self.dicoveryTime = 0
self.finishTime = 0
def setDistance(self, d):
self.distance = d
def getDistance(self):
return self.distance
def setPred(self, p):
self.predecessor = p
def getPred(self):
return self.predecessor
def setColor(self, c):
self.color = c
def getColor(self):
return self.color
def addNeighbour(self, neighbour, weight=0):
self.connectedTo[neighbour] = 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, neighbour):
return self.connectedTo[neighbour]
class Graph:
def __init__(self):
self.vertexlist = {}
self.numVertices = 0
def addVertex(self, key):
self.numVertices += 1
newVertex = Vertex(key)
self.vertexlist[key] = newVertex
return newVertex
def getVertex(self, key):
if key in self.vertexlist:
return self.vertexlist[key]
else:
return None
def __contains__(self, key):
return key in self.vertexlist
def addEdge(self, start, end, weight=0):
if start not in self.vertexlist:
newvertex = self.addVertex(start)
if end not in self.vertexlist:
newvertex = self.addVertex(end)
self.vertexlist[start].addNeighbour(self.vertexlist[end], weight)
def getVerteices(self):
return self.vertexlist.keys()
def __iter__(self):
return iter(self.vertexlist.values())
图Graph
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 原文链接:https://www.cnblogs.com/SivilTaram/p/graph_neural_ne...
- 问题 使用echart展示知识图谱时,我参照官网的demo,很快就用自己的测试数据(包含node、link )实现...
- 图相关的论文:GNN_Papers 一些开源的图(graph)模型 【1】Model_1: ChebNet(201...