我试图用Python递归地打印一棵树。由于某些原因,压痕不起作用(也许我现在太累了,看不到明显的缺陷)。下面是我正在使用的结构/类定义:
class Tree(object):
def __init__(self, data):
self.data = data
self.branches = []
class Branch(object):
def __init__(self, value):
self.label = value
self.node = None
如您所见,每棵树都有分支,它们有一个标签并指向另一棵树(这就是您在那里看到的node
值)。下面是我如何打印出这棵树:
这给了我:
4
Somewhat:
Yes
Fuller:
3
Correct:
8
Caribbean:
2
Wrong:
Wrong
Correct:
Correct
Italian:
Wrong
Burger:
Correct
Wrong:
Wrong
Nothing:
Wrong
当它应该给我
4
Somewhat:
Correct
Fuller:
3
Correct:
8
Caribbean:
2
Wrong:
Wrong
Correct:
Correct
Italian:
Wrong
Burger:
Correct
Wrong:
Wrong
Nothing:
Wrong
是什么导致我的代码有额外的换行而没有适当的缩进?在
更新
很肯定数据没问题。这是一个修改后的版本,显示它是可以的:
def tree_string(self, indent):
indentation = indent * " "
result = str(self.data);
if len(self.branches) > 0:
result += "["
for branch in self.branches:
result += branch.label + ":" + branch.node.tree_string(indent + 2) + " "
result += "]"
return result
…这会产生输出
4[Somewhat:Correct Fuller:3[Correct:8[Caribbean:2[No:No Correct:Correct ] Italian:Wrong Burger:Correct ] Wrong:Wrong ] Nothing:Wrong ]
但是,由于某种原因,缩进值总是0或2。在
我觉得应该行得通:
收益率
^{pr2}$相关问题 更多 >
编程相关推荐