遍历java中的非二叉树

时间:2013-10-12 19:00:45

标签: java tree

我有一棵不是二叉树的树,每个节点都有2个以上的孩子,我正在寻找一个遍历树的算法,我是学习数据结构的新手,我知道如何遍历二叉树但是在遍历非二叉树时,我迷路了。 任何人都能给我一个暗示吗?

4 个答案:

答案 0 :(得分:21)

在非二叉树中,将有Vector或其他一些引用所有子项的结构。像这样制作一个递归方法:

public void traverse(Node child){ // post order traversal
    for(Node each : child.getChildren()){
        traverse(each);
    }
    this.printData();
}

这些方面的东西。

答案 1 :(得分:8)

您需要使用递归,因为您无法确定每个节点(广度)的子项数或树的行程(深度)。根据您要遍历的方式,您可以使用Breadth-first-searchDepth-first-search

有关此主题的大量信息,请尝试实施其中一种递归方法,如果您遇到麻烦,请回来!

答案 2 :(得分:8)

好吧,当遍历二叉树时,按顺序访问父节点,然后递归遍历左子树,然后递归遍历右子树。对于一个有两个以上孩子的树,你递归地遍历每个孩子所领导的子树。你可以在for循环中进行递归调用。

答案 3 :(得分:1)

预发布顺序的算法与二叉树相同 对于一般树没有顺序遍历这样的事情,即没有意义(除非定义一些顺序)