【发布时间】:2018-02-13 01:12:30
【问题描述】:
假设我有一个像这样的 AST 结构(列表列表):
[+, [*, a,b],[*,c,d] ]
[+, [*, a,b],[*,c,[ +, d, e] ] ]
什么是计算结构深度的最简单和/或最快的方法,即它有多少层?
作为第二个选项,您也可以将其作为字符串使用,而不是列表列表 (LoL)。 F.e.:
"[+, [*, a,b],[*,c,d] ]"
我可以同时使用。
【问题讨论】:
-
遍历字符串并通过计数
[和]来跟踪深度。 -
仅供参考:根据经验,我强烈建议在列表/元组上使用对象来表示抽象语法树。使用后者很脆弱,而前者提供了更方便的界面。
-
一种方法是用图表示您的结构并应用基于图的算法(例如 DFS 等)-但是图论是一个巨大的话题,您的问题非常笼统(例如你想计算周期等...)
标签: python data-structures abstract-syntax-tree