文章

9

粉丝

37

获赞

91

访问

2.3k

头像
二叉排序树 - 华科 题解:
P1396 华中科技大学
发布于2025年3月14日 18:02
阅读数 104

查找一个结点的父亲,只需要看父节点的左右孩子的值是否等于要查找的结点的值,不等于的话,就递归的查找。

#include<bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *lchild,*rchild;
}Bnode,*BiTree;
void insertnode(BiTree &T,int a){
    if(T==NULL){
        T=(BiTree)malloc(sizeof(Bnode));
        T->data=a;
        T->lchild=NULL;
        T->rchild=NULL;
    }
    else{
        if(T->data>a){
            insertnode(T->lchild,a);
        }
        else if(a>T->data){
            insertnode(T->rchild,a);
        }
        else return;
    }
}
int func(BiTree T,int a){
    if(T&&(T->lchild||T->rchild)){//当前结点不空且不为叶子结点
        if(a<T->data){
            if(T->lchild->data==a) return T->data;
            else return func(T->lchild,a);//递归查询左孩子
        }
        else if(a>T->data){
            if(T->rchild->data==a) return T->data;
            else return func(T->rchild,a);//递归查询有孩子
 ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发