Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- graf_1 = []
- n = int(input("Введите размер графа: "))
- print("Составим матрицу смежности графа ")
- print("Для этого через пробел, для каждого узла графа, вводите список путей до других узлов")
- print("Правила ввода: 0 - ребра нет, ДругоеЧисло - длина ребра от этого узла до узла под номером 'ввода числа'")
- for i in range(n):
- graf_1.append(list(map(int, input(f"Узел {i+1}: ").split())))
- print("Таким образом матрица смежности графа выглядит следующим образом: ")
- for i in graf_1:
- print(*i)
- print("P.S. Проверки ввода нет, вводите корректные данные с первого раза, пожалуйста")
- graf_2 = []
- for i in range(len(graf_1)):
- graf_2.append([])
- for j in range(len(graf_1)):
- if graf_1[i][j] < 3:
- graf_2[i].append(graf_1[i][j])
- else:
- graf_2[i].append(0)
- print("Дополнительный граф выглядит следующим образом: ")
- for i in graf_2:
- print(*i)
- def deleter(num, graf_2 = graf_2):
- graf = []
- for i in range(len(graf_2)):
- graf.append([])
- for j in range(len(graf_2[i])):
- graf[i].append(graf_2[i][j])
- graf.pop(num-1)
- for i in range(len(graf)):
- graf[i].pop(num-1)
- return(graf)
- def checker(graf):
- help1 = []
- help2 = []
- for i in range(len(graf[0])):
- if graf[0][i] > 0:
- help1.append(1)
- sum1 = sum(help1)
- for i in range(len(graf)):
- for j in range(len(graf[i])):
- if graf[i][j] > 0:
- help2.append(1)
- if sum(help2) != sum1:
- return(False)
- else:
- help2 = []
- return(True)
- counter = 0
- for i in range(1, n+1):
- if checker(deleter(i, graf_2)) == True:
- print(f"Узел под номером {i} можно удалить, тогда новый граф будет выглядеть следующим образом: ")
- for j in deleter(i, graf_2):
- print(*j)
- counter+=1
- if counter == 0: print("Нет узлов, которые можно удалить,")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement