此篇记录下数据结构图的实现,带权重的无向图,邻接矩阵表示边集合,为接下来的最小生成树做好准备。
class Graph(object):
def __init__(self, maps):
self.maps = maps
self.nodenum = self.get_nodenum()
self.edgenum = self.get_edgenum()
def get_nodenum(self):
return len(self.maps)
def get_edgenum(self):
count = 0
for i in range(self.nodenum):
for j in range(i):
if self.maps[i][j] > 0:
count += 1
return count
def insert_node(self):
for i in range(len(self.maps)):
self.maps[i].append(-1)
self.maps.append([-1]*(self.nodenum) + [0])
self.nodenum += 1
def insert_edge(self, x, y, weight):
if x < 0 or x >= self.nodenum or y < 0 or y > self.nodenum or weight <= 0 or x == y:
return
else:
self.maps[x][y] =