【发布时间】:2013-05-29 16:22:10
【问题描述】:
我应该按照前序、中序和后序遍历二叉搜索树,并将值插入到 Java 中的 Object[] 中。老实说,我不知道如何做到这一点,我需要一些建议。
我的功能:
public Object[] traversePreOrder()
我需要的只是一些关于如何完成这项任务的想法或提示。 如果我遍历一棵树作为前序 Object[0] 显然是根的值。然后我继续在左边的树中插入最左边的值到我的数组中。 接下来我插入最左边节点的右子节点,如果右节点没有子节点,则继续使用两个节点的父节点。
但是我的方法不记得哪些值已经被检查和插入。我还想过以后序遍历,将每个元素放入堆栈并将每个元素推送到我的数组中,但我对如何实现这一点的知识有限。
救命!
以下是我认为已经正确的内容:
@Override
public Object[] traversePreOrder() {
Object[] preOrderArray = new Object[elements];
if (elements == 0) {
return preOrderArray;
}
return preOrderArray;
}
这个缺口显然要填补。
此外,我还有基本的方法和构造函数:
BinarySearchTreeNode(T value, BinarySearchTreeNode<T> left,
BinarySearchTreeNode<T> right) {
this.value = value;
this.left = left;
this.right = right;
}
BinarySearchTreeNode(T value) {
this(value, null, null);
}
BinarySearchTreeNode<T> getLeft() {
return left;
}
void setLeft(BinarySearchTreeNode<T> left) {
this.left = left;
}
BinarySearchTreeNode<T> getRight() {
return right;
}
void setRight(BinarySearchTreeNode<T> right) {
this.right = right;
}
T getValue() {
return value;
}
void setValue(T value) {
this.value = value;
}
【问题讨论】:
-
使用队列,然后将其转换为数组。
-
这是一个非强制性的任务。我这样做是为了准备我的考试。
-
我们至少可以看看你的方法吗?
标签: java tree traversal preorder