Java 如何将Int/String数组转换为具有节点的二叉树?
在Java中,使用提供的节点类编写一个名为tree builder的方法 tree builder是一种方法,它接受输入的int数组并按预先顺序构建树 TA注:道歉也应该有一个帖子,为了这个目的遍历 树 从这些阵列构建 预购[194723-25639428] 顺序[234755-219639428]Java 如何将Int/String数组转换为具有节点的二叉树?,java,algorithm,data-structures,Java,Algorithm,Data Structures,在Java中,使用提供的节点类编写一个名为tree builder的方法 tree builder是一种方法,它接受输入的int数组并按预先顺序构建树 TA注:道歉也应该有一个帖子,为了这个目的遍历 树 从这些阵列构建 预购[194723-25639428] 顺序[234755-219639428] 邮购[2355-24728946319] 这棵树 | 19 | +----+ / \ /
邮购[2355-24728946319] 这棵树
| 19 |
+----+
/ \
/ \
+----+ +----+
| 47 | | 63 |
+----+ +----+
/ \ \
/ \ \
+----+ +----+ +----+
| 23 | | -2 | | 94 |
+----+ +----+ +----+
/ \
/ \
+----+ +----+
| 55 | | 28
public class TreeNode {
public int data; // data stored at this node
public TreeNode left; // reference to left subtree
public TreeNode right; // reference to right subtree
// post: constructs a leaf node with given data
public TreeNode(int data) {
this(data, null, null);
}
// post: constructs a node with the given data and links
public TreeNode(int data, TreeNode left, TreeNode right) {
this.data = data;
this.left = left;
this.right = right;
}
}
public class Tree {
private TreeNode root;
public void treeBuilder(int[] array,int[] array) {
for(int i = 0; i<array.length; i++) {
// this is where I initalize a node but I'm not sure
// how to build in pre-order
}
}
}
| 19|
+----+
/ \
/ \
+----+ +----+
| 47 | | 63 |
+----+ +----+
/ \ \
/ \ \
+----+ +----+ +----+
| 23 | | -2 | | 94 |
+----+ +----+ +----+
/ \
/ \
+----+ +----+
| 55 | | 28
公共级树节点{
public int data;//存储在此节点上的数据
public TreeNode left;//对左子树的引用
public TreeNode right;//对右子树的引用
//post:使用给定数据构造叶节点
公共树节点(int数据){
这(数据,空,空);
}
//post:使用给定的数据和链接构造节点
公共树节点(int数据,左树节点,右树节点){
这个数据=数据;
this.left=左;
这个。右=右;
}
}
公共类树{
独活根;
公共void树生成器(int[]数组,int[]数组){
对于(int i=0;i如何从一个int[]
或两个
根节点的值正好出现在预排序序列的开头,后面是子树中的所有值,每个值都是连续的
1) 从预订单序列中取一个值
在顺序中找到它:
左子树中的所有值都将出现在前面,因此您知道它们的计数
右子树中的所有值都将出现在
递归地构造2)左和3)右子树
使用1)、2)和3)实例化TreeNode
。如何从int[]
或两个中获取TreeNode
根节点的值正好出现在预排序序列的开头,后面是子树中的所有值,每个值都是连续的
1) 从预订单序列中取一个值
在顺序中找到它:
左子树中的所有值都将出现在前面,因此您知道它们的计数
右子树中的所有值都将出现在
递归地构造2)左和3)右子树
使用1)、2)和3)实例化树节点。编辑了我的答案,因为我没有正确理解问题
他希望根据三个遍历结果构建树
这里给出了解决方案:编辑了我的答案,因为我没有正确理解问题
他希望根据三个遍历结果构建树
这里给出了解决方案:根是树中的第一个节点/数组的第一个元素。通常,每个2N和2N+1元素都是数组索引的子元素。这是一个方法,应该已经澄清了您是否给出了示例数组和预期的树?是的,刚刚发布了它,因为预排序从根开始,然后向左,您可以至少得到19和47,但我认为需要更多信息才能知道何时停止向左节点添加,根是树中的第一个节点/数组的第一个元素。通常,每2N和2N+1个元素都是数组索引的子元素。这是一个方法,应该已经澄清了您是否给出了示例数组和预期的树?是的刚刚发布的好,因为预订单从根开始,然后向左,你至少可以得到19和47,但我认为需要更多的信息才能知道何时停止添加到左边node@grey救救我。@grey救救我。