完全二叉树:完全二叉树是一种二叉树,其中除了可能的最后一层外,每一层都被完全填满,并且所有节点都尽可能靠左。
如何:按顺序递归遍历这样的树?
1
2 3
4 5
其中 2 和 3 是 1 和 4 的节点,而 5 是 2 的节点。
完全二叉树:完全二叉树是一种二叉树,其中除了可能的最后一层外,每一层都被完全填满,并且所有节点都尽可能靠左。
如何:按顺序递归遍历这样的树?
1
2 3
4 5
其中 2 和 3 是 1 和 4 的节点,而 5 是 2 的节点。
对于树遍历,基本上有 3 种算法
Preorder
,Inorder
和Postorder
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
您可以参考此链接了解更多详情。
编辑:
要回答你的问题(在评论部分),如果你想遍历所有节点 acc。到他们在树中的级别,你应该使用图遍历算法。在您的情况下,它将是 BFS - 广度优先搜索。
(注:树也是图的一种)
有关详细信息,请参见此处。
这个问题有点模糊,这取决于你追求什么,什么最有效等。
看看: 二叉树的树遍历算法