Скажем, у нас есть следующий неориентированный граф:
0
/ \
1 2
\
3
4
Я пишу функцию, которая принимает в качестве входных данных представление приведенного выше графика, которое выглядит следующим образом:
[{1, 2}, set(), {3}, set()]
Это список наборов, где каждый индекс набора представляет узел, а каждый элемент набора представляет дочерние узлы.Он должен взять этот список и вывести текстовый файл, который выглядит следующим образом:
0
0,3
2
-
Это список смежности, где каждый номер строки (не записан) представляет узел, а каждый элемент в строкесоседи узла.Любая вершина без соседа (например, 4) должна иметь '-' на своей линии.
Я изо всех сил пытаюсь написать функцию, которая также записывает родителя узла впереди.Кто-нибудь может придумать питонский способ сделать это?
То, что я имею до сих пор, не выполняет свою работу!n, здесь длина T:
def processT(T,n):
string = ""
for i in range(n):
elem = str(T[i])
if elem != "set()":
string += elem.strip("{}").replace(" ","") + "\n"
else:
string += "-\n"
file1 = open("output.txt", "w")
file1.write(string)
file1.close()
Любые идеи будут очень полезны.Спасибо!