下面是查找代码:

// 二叉树的二叉链表结点结构定义
typedef struct BiTNode
{int data;struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;// 递归查找二叉排序树 T 中是否存在 key
// 指针 f 指向 T 的双亲,其初始值调用值为 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 = T;return TRUE;}else if( key < T->data ){return SearchBST( T->lchild, key, T, p );   // 在左子树继续查找}else{return SearchBST( T->rchild, key, T, p );   // 在右子树继续查找}
}

下面是插入:

// 当二叉排序树 T 中不存在关键字等于 key 的数据元素时,
// 插入 key 并返回 TRUE,否则返回 FALSE
Status InsertBST(BiTree *T, int key)
{BiTree p, s;if( !SearchBST(*T, key, NULL, &p) ){s = (BiTree)malloc(sizeof(BiTNode));s->data = key;s->lchild = s->rchild = NULL;if( !p )       {*T = s;     // 插入 s 为新的根结点}else if( key < p->data ){p->lchild = s;  // 插入 s 为左孩子}else{p->rchild = s;  // 插入 s 为右孩子}return TRUE;}else{return FALSE;   // 树中已有关键字相同的结点,不再插入}
}

二叉排序树的查找、插入相关推荐

  1. 数据结构(8-3)二叉排序树(查找、插入删除)

    目录 一.基础理论 1.特点: 2.结构: 二.查找 三.插入 四.删除 1.被删除的结点D是叶子结点 2.被删除的结点D仅有一个孩子 2-1.删除结点14(有左无右) 2-2.删除结点 10 (有右 ...

  2. 【大话数据结构C语言】56 二叉排序树的查找、插入和删除

    欢迎关注我的公众号是[CodeAllen],关注回复[1024]获取精品学习资源 程序员技术交流①群:736386324 ,程序员技术交流②群:371394777 目录 二叉排序树查找关键字 二叉排序 ...

  3. 二叉排序树的查找、插入、创建和删除

    二叉排序树的特性: 1.若左子树非空,则左子树上所有结点的值均小于根节点的值: 2.若右子树非空,则右子树上所有结点的值均大于根节点的值: 3.左右子树又分别是一颗二叉排序树: 综上,左子树结点的值& ...

  4. 重温数据结构:二叉排序树的查找、插入、删除

    读完本文你将了解到: 什么是二叉排序树 Binary Sort Tree, BST 二叉排序树的关键操作 1.查找 2.插入 3.删除 * 运行代码测试 一道面试题 总结 Thanks 我们知道,二分 ...

  5. java二叉排序树动态查找表_9.3.1动态查找表—二叉排序树

    一.二叉排序树定义 二叉排序树(Binary Sort Tree)或者是一棵空树:或者是具有下列性质的二叉树: 我们知道一颗基本的二叉树他们都需要满足一个基本性质--即树中的任何节点的值大于它的左子节 ...

  6. 数据结构二叉排序树的查找

    1.二叉排序树的查找 (1)非递归方式(最坏空间复杂度O(1)) typedef struct BSTNode{int key;struct BSTNode *lchild, *rchild; }BS ...

  7. 数据结构之算法(二叉排序树的查找分析)

    在二叉排序树上查找其关键字等于给定值的结点的过程,恰是走了一条从根结点到该结点的路径的过程,和给定值比较的关键字个数等于路径长度加1(或结点所在层次数),因此,和折半查找类似,与给定值比较的关键字个数 ...

  8. DS二叉排序树之查找

    题目描述 给出一个数据序列,建立二叉排序树,并实现查找功能 对二叉排序树进行中序遍历,可以得到有序的数据序列 输入 第一行输入t,表示有t个数据序列 第二行输入n,表示首个序列包含n个数据 第三行输入 ...

  9. 二叉排序树中查找效率最高的是

    二叉排序树中查找效率最高的是平衡二叉树 二叉查找数的查找速度取决于树的深度 相同节点数深度最小的是平衡二叉树

最新文章

  1. C#事件的发送方和接收方(订阅方)
  2. 转:一个简单的基于WEB的QTP自动化测试框架-SAFFRON
  3. Linux (CentOS)安装VNC+XFCE可视化桌面环境 附安装FireFox浏览器
  4. 新IT运维时代 | Docker运维之最佳实践-下篇
  5. oracle如何降低逻辑读,如何降低该SQL的逻辑读
  6. 访问者(Visitor)模式
  7. 如何下载centos最小的镜像文件
  8. Ubuntu 及其衍生版安装使用截图工具【深度截图】
  9. python3-开发进阶-仿博客园项目setting.py的文件的配置,admin,forms(2)
  10. 1 物料xxxxxx在仓库101里不存在
  11. 杀不死的人狼——我读《人月神话》(四)
  12. 紧急事态分析及处理方法
  13. 如何查看手机的android版本信息,怎么查看手机型号、配置、版本【图文教程】...
  14. 互联网产品经理好书推荐
  15. ftp服务器文件夹设置,ftp服务器可设置的文件夹
  16. mysql姓名三位随机_Mysql之生成随机数,随机字符串,随机姓名
  17. perl社工密码字典生成器
  18. 数学建模案例--基于微分方程的酒后驾车问题浅析
  19. ORA-01034和ORA-27101的解决方法
  20. idea中开启多个线程运行多个项目

热门文章

  1. 刚进职场的程序员,请万分珍重你的第一份工作,不要轻易辞职!
  2. Weblogic 10.3.2 安装过程中出现致命错误的处理方法
  3. 要是不会用数据,算什么IT产品经理?
  4. 飞鸽传书 参与了公司的程序设计比赛
  5. 『实用』判断一个噩梦客户的7个预警信号
  6. 【飞秋】WF3.0和4.0区别介绍
  7. HOWTO:将 IOCTL 发送到筛选器驱动程序
  8. 水滴石穿C语言之static辨析
  9. java.io下载_java io 文件下载
  10. STM32----摸石头过河系列(二)