• 二叉排序树


    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);    //在右子树继续查找
        }
    }
  • 相关阅读:
    spring中applicationContext.xml配置文件
    获取当前项目的名称
    文件上传
    bean工厂
    过滤器
    hibernate入门
    struts2入门案例
    第一个分派struts2实例
    mysql实用函数
    通过jquery 获取用户当前所在的城市名称和IP地址
  • 原文地址:https://www.cnblogs.com/muzijie/p/5716117.html
Copyright © 2020-2023  润新知