2 回答
TA贡献1752条经验 获得超4个赞
如果要打印右侧子树中的节点,则只需调用与他的右侧节点对应的树的属性即可。print_tree
首先,定义一个print_tree方法:
def print_tree(self) -> None:
if self.is_empty():
pass
else:
# you are free to do additional things here such as print node value or etc..
self._left.print_tree()
self._right.print_tree()
然后是print_right_subtree方法:
def print_right_subtree(self) -> None:
self._right.print_tree() # which correspond to the print_tree of the _right attribute
TA贡献1946条经验 获得超3个赞
由于您不是在要求代码本身,而是在寻求帮助来编写自己的代码......
有一百万种方法可以做到这一点。有些更优化。有些写得更快。这完全取决于您的需求。
在这里,我认为你需要了解一棵树是什么。你的任何子树,本身就是一棵树。所以,你必须明白,这确实意味着任何事情。例如,只有每棵树的正确分支?还是第一个右枝的所有树?也许是第二个分支?
print the right tree
如果我做对了(Da bum tss!),你想在你的架构上打印树的正确分支,称为根。为什么不说呢?这样,即使您想从子树开始打印树,也很容易做到这一点!
I want to print all the numbers above 41
您需要可视化您的算法将执行的操作。在这里,您要打印 41(主树的右分支)以上的所有数字。让我为此编写伪代码(假设您已经在值为65的根节点上:
我想按升序写所有数字...
我的根是65。我的左边是50岁,我的右边是91岁。
哪个是最低的?50. 它还有其他分支吗?不。打印它!
我的根仍然是65,我的权利是91。我的根低于我的树枝?打印它!然后转到正确的分支。
我的主要现在是91,我的左边是72,我的右边是99。
哪个是最低的?你得到了递归。
即使经过所有这些,您仍然可以选择使另一个更快 - 编写,而不是计算!- 解决方案。从您需要的分支中收集所有值,并打印排序的值!
添加回答
举报