【发布时间】:2015-10-22 18:40:18
【问题描述】:
我使用了搜索功能,虽然我找到了一些类似的主题,但我没有找到一个完全涵盖我的问题的主题。
我正在尝试使用递归和中序遍历来查找 BST,因此我想跟踪元素的位置。
我有以下代码,但它没有做我想要做的事情。它正在做正确的遍历,但位置不正确。
void startProces(int x)
{
void inOrder(x,*n,*Position)
}
void inOrder(int x, Node *n, int *Position)
{
int counter = *Position;
counter++;
Position = &counter;
}
这是一个家庭作业,所以请避免给我一个直接的解决方案。另外请避免给我一个建议,因为我被锁定时必须重写函数参数。我希望能深入了解为什么我的位置值没有正确增加。我知道一旦找到值,我的函数目前就没有做任何事情。一旦我发现了这个问题,我就计划实施它。
澄清:我有插入功能,这里没有展示。如果我插入节点 (15,5,3,12,10,13,6,7,16,20,18,23),我会得到有序遍历 (3,5,6,7,10,12, 13、15、16、18、20、23)。我希望这对应于(1,2,3,4,5,6,7,8,9,10,11,12)。最终,当我运行 startProcess(10) 之类的东西时,我希望 inOrder 打印 5。
【问题讨论】:
-
你是如何给你的节点编号的?
-
嗨,Jason,我更新了原始帖子,提供了更多信息。如果仍然不能回答您的问题,请告诉我。
标签: c++ recursion binary-search-tree