使用列表列表将顶点添加到无方向图中



在我的代码中,我只能选择图是否定向、加权和边的数量,而不能选择顶点的数量。

有没有办法在函数控件中添加一个参数来选择顶点的数量?

我的代码如下:

list_adj = []
list_w = []
def graph(list_adj,length,weight,oriented):
count = 0
#non oriented
if oriented == False:
list_adj_non_o = [ [] for i in range(length) ]

for i in range(length):
k = random.randint(0,length-1)
if k != i and k not in list_adj_non_o[i]:
list_adj_non_o[i].append(k)
if k != i and k not in list_adj_non_o[k]:
list_adj_non_o[k].append(i)
count +=1
if weight == True:
list_w.append(random.randint(1,10))
else:
list_w.append(1)

print("list_adj_non_o : ",list_adj_non_o)
print("list_w : ", list_w)
print("number of vertices : ",count)
return list_adj_non_o

graph(list_adj,10,False,False)

谢谢你帮我。

如果需要更多顶点,请添加它们。如果希望它们连接到现有顶点,则必须添加更多边。如果你想要更少,请删除一些与它们连接的边缘。

在设置图形生成器时,无法独立设置边数和顶点数。如果你想这样做,你将不得不改变你的图形生成方式。如下所示:按照指定的顶点数创建顶点。随机选择两个顶点,并在它们之间添加一条边。重复添加边,直到达到指定的数量。请注意,最终可能会出现未连接的顶点。

最新更新