zoukankan      html  css  js  c++  java
  • 二叉排序树

    1 定义
      二叉排序树,又称为二叉查找树。它或者是一颗空树,或者是具有下列性质的二叉树。
      (1)若它的左子树不为空,则左子树上所有结点的值都小于它的根结点的值;
      (2)若它的右子树不为空,则右子树上所有结点的值都大于它的根结点的值;
      (3)它的左、右子树也分别为二叉排序树。

    2 二叉排序树查找操作

    //二叉树的二叉链表结点结构定义
    typedef struct BiTNode {
        int data;
        struct BiTNode *lchild;
        struct BiTNode *rchild;
    }BiTNode;
    typedef struct BiTNode *BiTree;
    
    //递归查找二叉树中是否存在key
    //指针f指向key的双亲,初始值为NULL
    //若查找成功,则指针p指向该数据元素结点,并返回true
    //若查找失败,则指针p指向查找路径上指向的最后一个结点,并返回false
    Status SearchBST(BiTree T, int key, BiTree f, BiTree *p) {
        if (!T) {                        //查找不成功
            *p = f;
            return false;
        } else if (key == T->data) {    //查找成功
            *p = f;
            return true;
        } else if (key < T->data) {
            SearchBST(T->lchild, key, f, p);    //在左子树继续查找
        } else {
            SearchBST(T->rchild, key, f, p);    //在右子树继续查找
        }
    }
  • 相关阅读:
    oracle修改字符编码
    oracle修改约束列
    oracle非空约束
    Linux修改字符集
    修改oracle字符集合
    word问题禁止宏
    增加修改表列
    oracle增加sequence
    增加 修改oracle约束条件
    oracle用户 密码永不过期
  • 原文地址:https://www.cnblogs.com/muzijie/p/5716117.html
Copyright © 2011-2022 走看看