【发布时间】:2019-09-23 17:45:50
【问题描述】:
假设我们有以下无向图:
0
/ \
1 2
\
3
4
我正在编写一个函数,该函数将上图的表示形式作为输入,如下所示:
[{1, 2}, set(), {3}, set()]
这是一个集合列表,其中每个集合索引代表一个节点,集合中的每个元素都代表该节点的子节点。它应该获取这个列表,并输出一个如下所示的文本文件:
0
0,3
2
-
这是一个邻接表,其中每个行号(未写)代表节点,每个行内元素是节点的邻居。任何没有邻居的顶点(如 4)都应该在其线上有一个“-”。
我正在努力编写一个将节点的父节点也写在前面的函数。谁能想到一个pythonic的方式来做到这一点?
到目前为止,我没有做它的工作!这里的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()
任何想法都会非常有帮助。谢谢!
【问题讨论】:
标签: python tree breadth-first-search adjacency-list