Data structures 如何制作一个递归例程来打印BST的根?

Data structures 如何制作一个递归例程来打印BST的根?,data-structures,binary-search-tree,Data Structures,Binary Search Tree,我必须编写一个例程,以递归方式打印二叉搜索树的根。函数具有以下形式: printTheRoot() { printTheRoot(someNode) } printTheRoot(Node node) { .... } 我不是在寻找具体的代码,只是想了解如何实现这一点的想法或伪代码。就个人而言,我不认为递归是必要的,但它是这个任务的一个要求 节点是否有属性父节点?如果是,则该属性的类型是否为Node?如果是这样,答案对您来说应该是显而易见的(如果您对递归感到满意的话

我必须编写一个例程,以递归方式打印二叉搜索树的根。函数具有以下形式:

printTheRoot() {

    printTheRoot(someNode)

}

printTheRoot(Node node) {

     ....

}

我不是在寻找具体的代码,只是想了解如何实现这一点的想法或伪代码。就个人而言,我不认为递归是必要的,但它是这个任务的一个要求

节点
是否有属性
父节点
?如果是,则该属性的类型是否为
Node
?如果是这样,答案对您来说应该是显而易见的(如果您对递归感到满意的话)


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

您的作业是否有特定的打印方式?如订单、预订单或后订单。我可能建议顺序递归是不必要的,但它显示了一些技巧。@Krukusa-他说要打印BST的根,而不是整个树,所以我认为他只需要走到根并打印它。“打印根”在大多数树实现中肯定不需要递归。我想你应该在树上打印所有节点,但这肯定是需要澄清的事情,谁给了你任务。但是,如果不能直接访问根,则递归函数可能更有意义,但需要提供更完整的代码示例来说明数据的表示方式。不管怎样,我不认为这个问题在目前的状态下可以得到回答。这是一个评论还是一个答案?海报上说“我不是在寻找具体的代码,只是寻找一个关于如何做到这一点的想法或伪代码”,清楚地表明这是一项学校作业。我指出了他需要关注什么来解决这项任务。他把它作为答案,我开始认为要求这个程序递归是老师的一个错误。因为可以直接访问根目录,所以它没有意义。我认为我遗漏了一些明显的东西,这就是为什么我问这个问题。此外,这个答案对于我所问的假设是我们需要打印给定任意节点的根是有意义的。可能作业主要是关于学习使用递归。假设您试图找出特定节点所在的树的级别。您最好使用递归函数来实现这一点,该函数在每次递归时递增计数器
RowLevel
,并在到达根时返回
RowLevel
的值。