Sie sind auf Seite 1von 4

Варіант 3

Вага ребер мінімального остового дерева:


5 + 1 + 1 + 2 + 10 + 9 + 1 + 4 + 3 + 56 + 24 = 116
Алгоритм Прима:
Вершин v1
а v1 v2 v3 v4 v6 v7 v8 v9 v10 1 v13 v14
v1 ∞ 13 ∞ ∞ ∞ ∞ 5 ∞ ∞ ∞ ∞ ∞
v2 13 ∞ ∞ ∞ 9 ∞ 1 ∞ 1 ∞ ∞ ∞
v3 ∞ ∞ ∞ 4 ∞ 7 ∞ ∞ ∞ ∞ ∞ 3
v4 ∞ ∞ 4 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞ ∞
v6 ∞ 9 ∞ ∞ ∞ 10 ∞ ∞ 2 ∞ 20 56
v7 ∞ ∞ 7 1 10 ∞ ∞ ∞ ∞ ∞ 9 ∞
v8 5 1 ∞ ∞ ∞ ∞ ∞ 78 ∞ 24 ∞ ∞
v9 ∞ ∞ ∞ ∞ ∞ ∞ 78 ∞ ∞ 56 ∞ ∞
v10 ∞ 1 ∞ ∞ 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞
v11 ∞ ∞ ∞ ∞ ∞ ∞ 24 56 ∞ ∞ ∞ 77
v13 ∞ ∞ ∞ ∞ 20 9 ∞ ∞ ∞ ∞ ∞ 13
v14 ∞ ∞ 3 ∞ 56 ∞ ∞ ∞ ∞ 77 13 ∞

Вершин
а v1 v2 v3 v4 v6 v7 v8 v9 v10 v11 v13 v14
V1 - 13 ∞ ∞ ∞ ∞ 5 ∞ ∞ ∞ ∞ ∞
V8 - 1 ∞ ∞ ∞ ∞ - 78 ∞ 24 ∞ ∞
V2 - - ∞ ∞ 9 ∞ - ∞ 1 ∞ ∞ ∞
V10 - - ∞ ∞ 2 ∞ - ∞ - ∞ ∞ ∞
V6 - - ∞ ∞ - 10 - ∞ - ∞ 20 56
V7 - - 7 1 - - - ∞ - ∞ 9 ∞
V4 - - 4 - - - - ∞ - ∞ ∞ ∞
V3 - - - - - - - ∞ - ∞ ∞ 3
V14 - - - - - - - ∞ - 77 13 -
v13 - - - - - - - ∞ - ∞ - -
V11 - - - - - - - 56 - - - -
V9 - - - - - - - - - - - -
Код алгоритму Крускала:
R = [(13, 1, 2), (9, 2, 6), (3, 3, 14), (5, 1, 8), (1, 2, 10), (7, 3, 7), (1, 2, 8), (2, 6, 10),
(9, 7, 13), (78, 8, 9), (77, 11, 14), (13, 13, 14), (24, 8, 11), (56, 6, 14), (4, 3, 4), (56,
9, 11), (20, 6, 13), (1, 4, 7), (56, 9, 11), (20, 6, 13), (1, 4, 7), (77, 2, 10), (10, 6, 7)]
Rs = sorted(R, key=lambda x: x[0])
U = set()
D = {}
T = []
for r in Rs:
if r[1] not in U or r[2] not in U:
if r[1] not in U and r[2] not in U:
D[r[1]] = [r[1], r[2]]
D[r[2]] = D[r[1]]
else:
if not D.get(r[1]):
D[r[2]].append(r[1])
D[r[1]] = D[r[2]]
else:
D[r[1]].append(r[2])
D[r[2]] = D[r[1]]
T.append(r)
U.add(r[1])
U.add(r[2])
for r in Rs:
if r[2] not in D[r[1]]:
T.append(r)
gr1 = D[r[1]]
D[r[1]] += D[r[2]]
D[r[2]] += gr1
print(T)

Das könnte Ihnen auch gefallen