Java 为什么在二叉树子类中需要用于前序、中序和后序遍历的字段?
我在网上自学二叉树相关内容,使用开放式数据结构教材 然而,我正在完成我参加的那些练习,我真的不知道它在问什么。看一看,上面写着: 练习6..7创建Java 为什么在二叉树子类中需要用于前序、中序和后序遍历的字段?,java,algorithm,data-structures,tree,binary-tree,Java,Algorithm,Data Structures,Tree,Binary Tree,我在网上自学二叉树相关内容,使用开放式数据结构教材 然而,我正在完成我参加的那些练习,我真的不知道它在问什么。看一看,上面写着: 练习6..7创建BinaryTree的子类,其节点具有用于存储预订单、后订单和订单编号的字段。编写递归方法preOrderNumber()、inOrderNumber()和postOrderNumbers(),以正确分配这些数字。这些方法都应该在O(n)时间内运行 我不是在要求解决问题,我只是很难理解教科书的作者在这个特殊的练习中要求做什么。在我看来,遍历应该使用前序
BinaryTree
的子类,其节点具有用于存储预订单、后订单和订单编号的字段。编写递归方法preOrderNumber()
、inOrderNumber()
和postOrderNumbers()
,以正确分配这些数字。这些方法都应该在O(n)时间内运行
我不是在要求解决问题,我只是很难理解教科书的作者在这个特殊的练习中要求做什么。在我看来,遍历应该使用前序、按序或后序,那么保留一个字段来存储数字的目的是什么呢?实际上,我对他所指的数字也感到困惑
这里非常感谢您的任何建议。提前谢谢 听起来作者很想让您创建如下类:
class LabeledBinaryTree extends BinaryTree {
void preOrderNumber();
void inOrderNumber();
void postOrderNumber();
}
及
从LabeledBinaryTree
类运行方法后,我们得到:
[A pre=0,in=1,post=3]
/ \
[B pre=1,in=0,post=0][C pre=2,in=2,post=2]
\
[D前=3,后=3,后=1]
因为遍历是
pre=>[A,B,C,D]
in=>[B,A,C,D]
post=>[B、D、C、A]
如需进一步澄清,请检查您提出的上述问题。谢谢,现在我对这个实例变量的用法已经清楚多了!
class LabeledNode<T> extends Node<T> {
T data;
LabeledNode<T> left;
LabeledNode<T> right;
int preOrderNum;
int inOrderNum;
int postOrderNum;
public LabeledNode(T data, LabeledNode<T> left, LabeledNode<T> right);
}