【发布时间】:2015-02-13 12:47:12
【问题描述】:
我想知道是否有人知道我练习中期的问题并理解答案。
-
在编程中,通常最好复制与您的新需求相似的现有函数,然后更改副本以适应新需求。如果我想要一个函数以相反的顺序打印出一系列数字,你会复制四个遍历函数中的哪一个作为新函数的基础?
答案:中序遍历()
-
给定一个包含 64 支球队单场淘汰赛结果的二叉树,我想打印出 F 击败的六支球队。请注意,下图仅显示了大得多的树的上部。我的代码只遵循 F 的胜利路径,所以它不是真正的树遍历。尽管如此,我的代码最接近并行的树遍历代码是什么?为什么?只需要一两句话,正确遍历8分,解释你选择的7分。 (我把给出的图片放在帖子的顶部)
答案:后序遍历,因为它必须先查看两个孩子才能找到失败者并确定正确的路径。
【问题讨论】:
-
第一个问题是建议复制粘贴和反复试验作为好的软件设计?!?
-
你能解释一下你的意思吗?谢谢!
-
@guido 看起来是这样。我想对于无法排除公共部分的小代码 sn-ps,这是一个可行的选择。对于较大的代码库,通常有重构的机会,这种做法变得很糟糕。
-
我指的是 c&p 部分。反复试验是一个不同的问题。
标签: tree binary-tree traversal inorder postorder