【发布时间】:2014-12-24 19:23:31
【问题描述】:
一段时间以来,我一直在绞尽脑汁寻找一种简单的递归方式来执行此操作 - 假设我有一个堆栈状态序列,看起来像这样,作为列表列表:
[
[a]
[a,b]
[a,b,c]
[a,b]
[a,b,d]
[a,b]
[a]
[a,e]
]
我想用它来表示它,本质上是一棵树,但使用嵌套列表层,而不为树定义一个新类。
上面的树格式可能看起来像这样
[a, [b, [c],
[d]],
[e] ]
本质上说,由于 c 和 d 在 b 之后,它们是 b 的子级,并且由于它们在堆栈跟踪中没有追随者,因此它们后面没有任何内容(或表示没有子级的空列表)。所以这也足够了:
[a, [b, [c, []],
[d, []],
[e, [] ]
基本上代表的树是
a
/ \
e b
/ \
c d
但完全没有课程。是的,我知道它是不干净的,并且类可能是做到这一点的干净方式,但我对没有类的解决方案感兴趣。
【问题讨论】:
-
到目前为止你尝试过什么代码?
标签: python tree stack stack-trace