java - 如何在预序遍历中打印 AVLTree 的条目
问题描述
我正在尝试使用 preorder Traversal 打印存储在 AVL 树中的对象,程序运行良好,但它不打印 preorder 遍历它只是按插入树的顺序打印对象。有人可以帮我吗?
private AVLNode<AnyType> printPreorder(AVLNode<AnyType> t) {
if (t == null)
return null;
/* first print data of node */
System.out.print(t.element + " ");
/* then recur on left sutree */
printPreorder(t.left);
/* now recur on right subtree */
printPreorder(t.right);
return null;
}
public AVLNode<AnyType> print() {
return printPreorder(root);
}
解决方案
不要包括最后一条return
语句,使用以下代码:
private Void printPreorder(AVLNode<AnyType> t)
{
if (t != null)
{
System.out.print(t.element + " ");
printPreorder(t.left);
printPreorder(t.right);
}
}
public Void print()
{
printPreorder(root);
}
让我知道它是否有帮助。
推荐阅读
- active-directory - 为什么客户总是希望通过 AD 和使用 AD 安全组的安全创建用户帐户?
- visual-studio - 我无法调试 Xamarin.Android 应用程序
- javascript - 在 redux 中调度存储变量时,React 组件不会重新渲染
- html - 手风琴内的超链接是半透明的(仅限 HTML CSS)
- python - 如何执行依赖于在另一个 python gui 脚本中提取文件名的 python 脚本?
- javascript - 在 Django 模板中使用 ViewerJS 显示 office 文件或 pdf 文件
- javascript - 使用 HTML 表将用户输入或响应保存到本地存储
- c# - .Net Core 使用 Serilog 将日志记录到 PostgreSQL 不工作
- python - 如何在 Python 中为函数找到最合适的参数
- java - 如何在打印时更改树形图中的变量?