java - 反向递归遍历 B-Tree
问题描述
我有一个 B 树,它具有我在 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]);
}
}
解决方案
经过更多的调试,我发现了问题所在。这是解决方案。好像我的索引关闭了。
private void reversedInOrder(BTreeNode node) {
int i;
for (i = node.numNodes; i > 0; i--) {
if (!node.isLeaf) {
reversedInOrder(node.children[i]);
}
if (node.keys[i - 1] != null) {
System.out.println(node.keys[i - 1].getName());
}
}
if (!node.isLeaf) {
reversedInOrder(node.children[i]);
}
}
推荐阅读
- lua - 如何调试用 Lua 编写的 Roblox 程序?
- vue.js - BootstrapVue b-table 的类型检查失败:tbody-tr-class
- c++ - GDB 条件断点,奇怪的行为
- c++ - 一点一点地写入文件
- c# - 如何获取在 Web 项目中生成的 pdf 文件,并在同一解决方案中的另一个项目中打印它 c#
- android - Android 项目不生成启动器图标
- java - 如何在 Android 3.1 及更高版本中实现 Firebase Recycler Adapter?
- php - 删除按钮不会按 id 工作保持刷新页面
- javascript - Angularjs 应用程序未打开配置的模式
- node.js - 结合 Express 4 和 Vue CLI 3