【发布时间】:2017-09-15 23:42:32
【问题描述】:
大家好,Stackoverflowers!:D
这是我在 stackoverflow 上的第一个问题,感谢任何对我下一个问题的建议!
我想打印出树形数据结构中所有节点的数据。我已经有一些代码,但我得到了奇怪的结果。
-每个节点可以有多个子节点,这些子节点存储在节点列表中
-我总是从根开始
这是我的代码:
public static void printTree(Knoten blatt){
Aufgabe1.Gewichte = Aufgabe1.Gewichte + blatt.Gewicht;
System.out.println(blatt.Gewicht);
for(int i=0;i<blatt.children.size();i++) {
blatt = blatt.children.get(i);
printTree(blatt);
}
}
但是如果我调用这个函数,我的程序不会打印出所有节点。 我知道这一点,因为我在创建节点时打印数据,我得到了这个:
3.0
27.0
-6.0
-7.0
10.0
-5.0
-47.0
-13.0
-5.0
如果我用递归函数打印出来,我会得到:
3.0
27.0
-6.0
-7.0
10.0
-5.0
-47.0
-13.0
-47 是父母,孩子 -13 和 -5,-5 只是不想被打印出来。
如果我手动打印出来,比如 root.children.children...get(i) 随便什么,我可以使用正确的数据访问两个孩子... 我真的不知道我的代码的错在哪里,如果有人可以帮助我,那就太好了...... 我确定我只是有点盲目:D
我也尝试了一些其他的树,有时这个错误不会出现,有时它会......
感谢您的帮助,希望我的问题可以理解
【问题讨论】:
-
哦,是的,我的格式有误,谢谢!
-
你能把你测试的树结构也贴出来吗?由于打印所有内容的顺序,我怀疑您可能会对输出感到困惑。
-
你是指树的数据,还是我的树数据结构?:D
-
我正在尝试将您向我们展示的线性输出与树的实际结构相关联。否则,怎么会有人知道是否存在真正的问题?
-
给你,希望对你有帮助
标签: java recursion data-structures tree