java实现二叉树的问题

啊昕Alan 2015-01-15 04:25:02
最近在学习数据结构,在用java实现树的时候碰到如下问题,求大神帮忙看看。

我使用前序数列来生成二叉树,数列为 {1,2,INVAILD,4,INVAILD,INVAILD,3,INVAILD,INVAILD}。

构造方法:
 public Tree(int nodes[]) {
this.nodes = nodes;
createTree(rootNode);
}


创建代码如下
 private void createTree(Node node) {
if (nodes[index] != INVAILD){
node = new Node(nodes[index++]);
size++;
createTree(node.getLeftNode());
createTree(node.getRightNode());
}else{
index++;
}
}



传入的rootNode是树的根节点,但是作为形参的rootNode传入后无法有效的实例化,最后导致实体丢失,求老司机指路。
...全文
315 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
啊昕Alan 2015-01-16
  • 打赏
  • 举报
回复
引用 1 楼 wiflly 的回复:
能不能把整段代码贴上来看看。 createTree(node.getLeftNode()); createTree(node.getRightNode()); 这两段代码的意义何在?你没有比较数据之间的大小,那哪需要考虑将其分配到节点的左边还是右边
非二叉排序树,所以不需要数据比较。 只是根据数列为 {1,2,INVAILD,4,INVAILD,INVAILD,3,INVAILD,INVAILD}。按前序顺序生成树。 已形参方式传入方法,并对这个形参进行实例化无效,想知道如果用java通过这种前序数组生成二叉树有何高招。
wiflly 2015-01-16
  • 打赏
  • 举报
回复
能不能把整段代码贴上来看看。 createTree(node.getLeftNode()); createTree(node.getRightNode()); 这两段代码的意义何在?你没有比较数据之间的大小,那哪需要考虑将其分配到节点的左边还是右边

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧