【发布时间】:2021-10-30 12:12:36
【问题描述】:
我有一个 B-Tree,它带有我在 GeeksForGeeks 上找到的执行标准中序遍历的遍历函数。我试图通过更改 for 循环来修改它以进行反向中序遍历,但它似乎不起作用。有什么想法吗?
private void reversedInOrder(BTreeNode node) {
int i;
for (i = node.numNodes - 1; i >= 0; i--) {
if (!node.isLeaf) {
reversedInOrder(node.children[i]);
}
System.out.println(node.keys[i].getRedId());
}
if (!node.isLeaf) {
reversedInOrder(node.children[i]);
}
}
【问题讨论】:
-
你的循环增量看起来不对。
-
使用调试器逐步检查您的代码,您很快就会发现问题所在。
-
您在 numnodes-1 处开始 for 循环,但随后您仍在向上计数(递增)而不是向下计数,因此,当然,您永远不会达到零。
-
对不起,这是复制/粘贴的错字,当减量正确时,我仍然有问题。