
编程开发
切片copy
当我们需要在Go语言中复制一个切片时,我们可以使用内置的copy函数。copy函数可以将一个切片的元素复制到另一个切片中。下面是一个示例: 在上面的示例中,我们首先创建了一个源切片
如果在一个无向图中从每一个顶点到其它顶点都存在一条路径,则称该路径是连通的。具有这种性质的有向图是强连通的。有向图的弧上去掉方向所形成
的图是连通的,则该有向图为弱连通的。
若图很稠密(边很多),则邻接矩阵是合适的表示方法。如果很稀疏,更好的解决方法是邻接表。
class Vertex(object):
def __init__(self,key):
self.id=key
self.adj={}
def addNeighbor(self,nbr,weight=0):
self.adj[nbr]=weight
def getNeighbors(self):
return self.adj.keys()
def getId(self):
return self.id
def getWeight(self,key):
return self.adj[key]
class Graph(object):
def __init__(self):
self.vertexlist={}
self.size=0
def addVertex(self,key):
vertex=Vertex(key)
self.vertexlist[key]=vertex
self.size+=1
return vertex
def getVertex(self,key):
return self.vertexlist.get(key)
def __contains__(self,key):
if key in self.vertexlist:
return True
else:
return False
def addEdge(self,f,t,weight=0):
if f not in self.vertexlist:
self.addVertex(f)
if t not in self.vertexlist:
self.addVertex(t)
self.vertexlist[f].addNeighbor(self.vertexlist[t],weight)
def getVertices(self):
return self.vertexlist.keys()
def __iter__(self):
return iter(self.vertexlist.values())
评论 0