数据结构--二叉树遍历算法的应用

本文详细介绍了二叉树遍历在数据结构中的应用,包括查询节点、统计叶子节点数量、计算树的深度以及复制二叉树等。通过先序、中序、后序遍历和层次遍历等方式,展示了不同场景下遍历方法的选择和实现。最后总结了遍历序列的特点,帮助理解二叉树的特性。
摘要由CSDN通过智能技术生成

查询二叉树中的某个节点

  1. 在二叉树不空的前提下,和根结点的元素进行比较,若相等,则找到返回TRUE;
  2. 否则在左子树中进行查找,若找到,则返回TRUE;
  3. 否则继续在右子树中进行查找,若找到,则返回TRUE,否则返回FALSE;
bool preOrder(BiTree T, int x, BiTree &p){
    //若二叉树中存在与x相同的元素
    //则p指向该节点并返回OK,否则返回false
    if(T){
        if(T->data == x){
            return true;
        } else {
            if(preOrder(T->lchild, x, p)){
                return true;
            } else {
                return preOrder(T->rchild, x, p);
            }
        }
    } else {
        return false;
    }
}

统计二叉树中叶子节点的个数

算法基本思想:
先序(或中序或后序)遍历二叉树,在遍历过程中查找叶子结点,并计数。由此,需在遍历算法中增添一个“计数”的参数,并将算法中“访问结点”的操作改为:若是叶子,则计数器增 1。

参数形式

void countLeaf(BiTree T, int &count){
    if(T){
        if(!T->lchild
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值