我正在编写一些Python代码,其中数据表示为n元树,其中n由用户给定。树的算术是确定的,但我正在努力用一个算法来枚举从根到每个元素的路径。你知道吗
例如,如果我有一棵三叉树
.
/|\
/ | \
/ | \
/ | \
. . .
/|\ /|\ /|\
a b cd . hi j k
/|\
e f g
由嵌套列表表示
[[a, b, c], [d, [e, f, g], h], [i, j, k]]
我想要一个元组列表,比如
[(a, 00), (b, 01), (c, 02), (d, 10), (e, 110), (f, 111), (g, 112), (h, 12), (i, 20), (j, 21), (k, 22)]
我确实在这里发现了一个类似的问题Enumerating all paths in a tree,但这并不是我所需要的,而且我不确定如何实现我正在寻找的枚举类型。你知道吗
下面是一个递归方法,它使用
yield from
和递归生成每个叶的路径。你知道吗我认为实际的树和它的表示不匹配。
如果我没有弄糟这张照片,应该是:
如果您的数据由
repr
这样的列表组成,您可以使用如下递归函数:相关问题 更多 >
编程相关推荐