Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from enum import Enum
- upperCase = Enum('upperCase', 'А Б В Г Д Е Ё З Ж И Й К')
- lowerCase = Enum('lowerCase', 'а б в г д е ё з ж и й к')
- INF = 9000
- def inAlphabet(char):
- if (char in lowerCase.__members__):
- return lowerCase.__members__[char].value
- elif (char in upperCase.__members__):
- return upperCase.__members__[char].value
- else:
- return 0
- F = input("Введите свою фамилию: ")
- I = input("Введите своё имя: ")
- O = input("Введите своё отчество: ")
- Name = F + I + O
- wMatrix = [0] * 7
- for i in range(7):
- wMatrix[i] = [0] * 7
- k = 0
- for i in range(len(wMatrix)):
- for j in range(len(wMatrix)):
- if (i == j):
- wMatrix[i][j] = 0
- else:
- wMatrix[i][j] = inAlphabet(Name[k])
- k += 1
- if (i == j):
- k -= 1
- if(k > (len(Name)) - 1):
- k = 0
- def unDirGraph(M):
- for i in range(len(M)):
- for j in range(len(M)):
- if(M[i][j] != 0):
- M[j][i] = M[i][j]
- print("Взвешенная матрица смежности после отмены ориентации дуг(Неориентированный граф)")
- for i in range(len(M)):
- for member in M[i]:
- print ("%3d " % member, end='')
- print('\n', end='')
- def search_min(tr, visited):
- min_ = INF
- index2 = 0
- for ind in visited:
- for index, elem in enumerate(tr[ind]):
- if (elem > 0 and elem < min_ and index not in visited):
- min_ = elem#веса путей
- index2 = index# индекс вершины
- return [min_, index2]
- def primAlgo(matr):
- toVisit = [i for i in range(1,len(matr))]
- visited = [0]
- result = [0]
- for index in toVisit:
- weight, ind = search_min(matr, visited)
- result.append(weight)#в результат будут заноситься веса
- visited.append(ind)# содержит карту пути
- s = 0
- for e in result:
- s += e
- if(s == INF * (len(matr) - 1)):
- print("Граф несвязный")
- else:
- print("Порядок обхода вершин")
- for i in range(len(visited)):
- print(i + 1, ")вершина", visited[i] + 1)
- print ("Вес минимального оставного дерева равен", s)
- print ("Взвешенная матрица смежности(Ориентированный граф)")
- for i in range(len(wMatrix)):
- for member in wMatrix[i]:
- print ("%3d " % member, end='')
- print('\n', end='')
- unDirGraph(wMatrix)
- primAlgo(wMatrix)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement