2014-03-18 18 views
-1

我必须编写一个例程,以递归方式打印二叉搜索树的根。该函数的形式如何制作一个可以打印BST根的递归例程?

printTheRoot() { 

    printTheRoot(someNode) 

} 

printTheRoot(Node node) { 

    .... 

} 

我不是在寻找特定的代码,只是如何可以这样做的想法或伪代码。就个人而言,我不认为递归是必要的,但它是这项任务的要求。

+0

有没有一种特定的方式,你的任务说打印它?像在订单,预购或后订单一样。我可能建议顺序递归不是必要的,但它显示技能。 – KRUKUSA

+0

@Krukusa - 他说要打印BST的根部,而不是整棵树,所以我认为他只需走到根部并打印它。 –

+0

“打印根”绝对不需要在大多数树实现中递归。我假设你应该[遍历](http://en.wikipedia.org/wiki/Tree_traversal)树,打印所有节点,但这绝对是要澄清与谁给你的任务。但是,如果您无法直接访问根目录,递归函数可能会更有意义,但您需要提供更完整的代码示例来说明如何表示数据。无论哪种方式,我不认为这个问题可以在目前的状态下得到回答。 – Dukeling

回答

1

请问node有财产parent?如果是这样,是Node类型的财产?如果是这样,答案应该是显而易见的(如果你适应递归)。

请记住,所有递归函数都必须具有退出条件。你认为这个函数的退出条件应该是什么?

+0

这是一条评论或答复? – arunmoezhi

+0

海报说:“我不是在寻找特定的代码,只是为了一个想法或伪代码来完成这件事,”明确表示这是一个学校作业。我指出他需要专注于解决这项任务。他将其标记为答案。 –

+0

我开始认为让这个例程递归的要求是部分教师的错误。它只是没有意义,因为可以直接访问根。我以为我错过了明显的东西,这就是为什么我问这个问题。而且,这个答案对于我所要求的假设我们需要打印给定的任意节点的根是有意义的。 –