C 二叉树查找值为x的节点,并打印其所有的父节点

思路就跟输出二叉树一样的,只不过这次是找节点

文章目录

查找节点

//找一个值为x的节点
BiThrTree findElement(BiThrTree T, ElementType x){
    
    if (!T)
        return NULL;
    if (T->data == x){
        return T;
    }
    else
    {
        BiThrTree temp;
        //先看下左边找到了没有
        temp = findElement(T->LeftTreeNode, x);
        //没有找到那就看看右边
        if(!temp){
            return findElement(T->RightTreeNode, x);
        }
        //这个跟输出不一样,得有个指针来接收。
        return temp;
    }
    return NULL;
}

输出此节点所有的父节点

递归的魅力,真是巧妙

//打印X节点所有父节点
int putRootofx(BiThrTree T, ElementType x){
	//没有就返回0
    if(!T)
        return 0;
    //找到了就返回1
    if(T->data == x){
        return 1;
    }
    //这个节点有值但不是要找到那个,那就往它的子节点下面看看
    if(T){
    	//只要子节点里面有符合条件的,那就将其输出出来
        if(putRootofx(T->LeftTreeNode, x) || putRootofx(T->RightTreeNode, x)){
            printf("%c ",T->data);
            return 1;
        }
    }
    return 0;
}
    原文作者:二叉查找树
    原文地址: https://blog.csdn.net/u010095372/article/details/83443750
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞