如何遍历完整树的末尾?

时间:2012-10-25 06:05:25

标签: java data-structures binary-tree priority-queue

完整的二叉树:完整的二叉树是一个二叉树,其中除了可能是最后一个级别之外,每个级别都被完全填充,并且所有节点都尽可能地离开。

如何:递归遍历这样的树?

    1
  2   3
4  5 

其中2和3是1和4的节点,5是2的节点。

2 个答案:

答案 0 :(得分:3)

对于树遍历,基本上有3种算法

PreorderInorderPostorder

void inorder(root_node)
{
    if(root_node != null)
    {
        inorder(root_node->left);
        println(root_node->value);
        inorder(root_node->right);
    }
}

输出:4 2 5 1 3

您可以参考此link了解详情。

编辑:

要回答您的问题(在评论部分),如果您想遍历所有节点acc。对于他们在树中的级别,您应该使用图遍历算法。在你的情况下,它将是BFS - 广度优先搜索。

(注意:树也是一种图形)

有关详细信息,请参阅here

答案 1 :(得分:0)

这个问题有点模糊,这取决于你所追求的是什么,最有效等等。

看看: Tree traversal algorithms for a binary tree