我在学校有一个简单的Python树作业,但我被卡住了。如何递归生成函数
电源如下所示
tree_s = '(A (B (C) (D (E) (F) ) )(G (H)) (I (J (K) )))'
treeSLst = [x for x in tree_s if x != ' ']
print(treeSLst)
p = Tree()
p.build_tree(p.root, treeSLst)
print(p)
以下是应该得出的结果:
ROOT--> [ A ]
A--> [ B,G,I ]
B--> [ C,D ]
D--> [ E,F ]
G--> [ H ]
I--> [ J ]
J--> [ K ]
印刷部分是给所以没有问题
def build_tree(self, parent, treeSLst):
#index = -1
for token in treeSLst:
#index += 1
if token == '(':
#n = Node(treeSLst[index+1])
#parent.add_child(n)
#self.build_tree(n, treeSLst[index+1:])
if token == ')':
#return
我标记#的部分是我尝试的代码。当然,看起来很奇怪。 剩下的都给了
它需要递归地实现。 也许我应该使用“self.build\u tree()”,请帮帮我
您的代码将多次处理嵌套令牌。递归调用将处理它们,然后调用者的
for
循环将再次处理它们不要使用
for
循环,而是使用while
循环并从列表中提取每个标记来处理它相关问题 更多 >
编程相关推荐