数据结构专题二:二叉树_2

二叉查找树BinarySearchTree

又称为排序二叉树、二叉搜索树:要么二叉查找树是一棵空树;要么二叉查找树由根结点,左子树,右子树组成,且左子树上所有结点的数据域均小于等于根结点的数据域,右子树的数据域均大于根结点的数据域

数据结构专题二:二叉树_2_第1张图片

1、查找 

如果当前根结点数据域等于x ,查找成功;如果当前根结点数据域小于x,往右子树查找;大于x,往左子树查找

void search(node * root ,int x){
    if(root == NULL){
        return;
    }
    if(x == root->data){
        printf("%d\n",root->data);
    }else if(x < root->data){
        search(root->lchild,x);
    }else{
        search(root->rchild,x);
    }    
}

插入类似

void insert(node * & root,int x){
    if(root ==NULL){ //空树,即为插入位置
        root = newNode(x);
        return root;    
    }
    if(x==root->data){
        return; //查找成功,结点已经存在,则返回
    }else(xdata){
        insert(root->lchild,x);
    }else
    {
        insert(root->rchild,x);
    }
}

二叉查找树的建立:

node* Create(int data[],int n){
    node * root =NULL;
    for(int i= 0;i

二叉查找树的性质:对二叉查找树的中序遍历是有序的。

你可能感兴趣的:(数据结构篇)