先序遍历队规算法查找值为x的节点

本文介绍了一种基于先序遍历的二叉树节点查找算法。该算法首先检查当前节点是否为空,若非空则比较节点值与目标值x是否相同。若相同则返回当前节点指针;若不同,则继续在左子树中查找,若左子树未找到再转向右子树查找。通过递归方式实现,直至找到目标节点或遍历完整棵树。

算法思想:

先看开始节点是不是为空,若为空,则返回NULL(递归时当当前节点为空时,也返回NULL)

若果节点值不为x,则遍历左子树,如果左子树返回空,遍历右子树。

//先序遍历值为x的节点,找到后返回其指针,否则返回Null
BTNode* FindBTNode( Elem x ,BTNode *a)
{
    if (a==NULL)
    {
        return NULL;
    }
    if (a->date==x)
    {
        return a;
    }
    BTNode *b=FindBTNode(x,a->LeftChild,);
    if (b!=NULL)
    {
        return b;
    }
    else
        return b=FindBTNode(x,a->RightChild);

}

 

转载于:https://www.cnblogs.com/lisongfeng9213/p/3427070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值