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);    //在右子树继续查找
        }
    }
  • 相关阅读:
    linux 共享内存 信号量 同步
    进程间通信 共享内存
    linux 多进程绑定问题
    C 语言调用python 脚本函数
    C 语言 和 python 调用 .so 文件
    好好学习
    three.js
    AMD、CMD、UMD 模块的写法
    webpack查缺补漏
    什么是 Web 服务器(server)
  • 原文地址:https://www.cnblogs.com/muzijie/p/5716117.html
Copyright © 2011-2022 走看看