如何从顶层开始逐层打印二叉树

本文介绍了一种使用队列实现的二叉树层次遍历算法。通过将根节点加入队列并依次处理每个节点及其左右子节点,最终完成整棵树的遍历。文中提供了具体的C++代码实现。

 层次遍历二叉树。
大致算法:
采用一个队列q,先将二叉树根结点入队列,然后退队列,输出该结点;若它有左子树,便将左子树根结点入队列;若它有右子树,便将右子树根结点入队列,如此直到队列空为止。

 采用队列的方式:

void HiberarchyRetriveATree(TreeNode root,void (* visit)(TreeNode))
{
       queue<TreeNode> tree;
       TreeNode tmp = NULL;
       tree.push(root);
       while (!tree.empty())
       {
              tmp = tree.front();
              tree.pop();
              (*visit)(tmp);
              if (tmp->_l != NULL)
                     tree.push(tmp->_l);

              if (tmp->_r != NULL)
                    tree.push(tmp->_r);
       }
}

void Visit(TreeNode node)
{
       cout<<node->_value<<" ";
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值