二叉树搜索基本概念

二叉搜索树,以这样一种方式构成,在任何层、任何节点的直接左节点的存储值总是小于或等于其节点本身的值。所以节点的左子树总包含那些存储值小于或等于它的节点。同理,节点的右子树总包含那些存储值大于或等于它的节点。下述代码从根节点开始,并将当前节点的数据部分与正在插入的新数据结点进行了比较。如果新节点的数据小于当前节点的数据值,通过左子节点指针进行**递归调用相同函数**;否则,通过右子节点**递归调用相同函数**。
#include<stdio.h>
#include<stdlib.h>
# define N sizeof(struct point)//用宏来存结构体长度struct point
{int date;struct point* left;struct point* right;
};struct point* creatnode(int data)
{struct point* p;p = (struct point*)malloc(N);//动态申请空间p->date = data;//存入信息,并将左右子树为空p->left = NULL;p->right = NULL;return p;
}void insertnode(struct point** root, struct point* n)
// struct point** root 是指向指针的指针存的是指针变量的地址,(不懂的可以看下我之前的博客){struct point* temp = *root;if (temp == NULL){*root = n;}else{if (n->date < temp->date)insertnode(&temp->left, n);else insertnode(&temp->right, n);}
}int main()
{struct point* root = NULL;for (int i = 0; i < 5; i++)insertnode(&root, creatnode(i));//将数据直接转化为结点来处理return 0;
}

二叉树(BST)之创建二叉搜索树相关推荐

  1. (一)BST树(二叉搜索树)

    (一)BST树(二叉搜索树) 1.BST二叉搜索树 1.1BST树的定义 1 BST树也是一个二叉树,故满足递归定义; 2 其次每个节点只存在一个值; 3 需满足左子树值<=根值<=右子树 ...

  2. b+树时间复杂度_满二叉树、完全二叉树、二叉搜索树、平衡二叉树

    "存在即合理"为什么需要每种树,本文不再冗余的总结每种树太多性质,就说重点. 二叉树(Binary Tree)主要包括:满二叉树.完全二叉树.二叉搜索树.平衡二叉树 性质太多,定义 ...

  3. 使用双向链表构建二叉树_python:26.二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 思路 1.二叉搜索树满足左子树的值<根结点的值<右子树的值,所 ...

  4. bst java_BST(二叉搜索树) Java 实现解析

    1.二叉搜索树的定义:一颗树的所有左子树都比根小,所有右子树都比根大,成为二叉搜索树. 2.该BST树实现了9个重要方法,分别是关键字查找,插入,删除,删除节点后续节点查找,前序遍历,中序遍历,后序遍 ...

  5. 平衡搜索树(Binary Search Tree BST)、索引二叉搜索树

    文章目录 二叉搜索树 索引二叉搜索树 测试代码 这里只给出代码实现. 更多的性质日后再补. 二叉搜索树 // // Created by SongyangJi on 2020/12/23. //#if ...

  6. BST | 1064 完全二叉搜索树

    OJ:https://www.patest.cn/contests/pat-a-practise/1064 (一)23分(3个case未过)代码 建树的规律是我瞎猜的.首先用样例数据分析. 10 1 ...

  7. 一次聊个透彻:满二叉树、完全二叉树、二叉搜索树,二叉平衡树

    一 满二叉树 1.1 满二叉树 国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树.也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉 ...

  8. 数据结构 --- c语言二叉搜索树(有序的树)

    二叉搜索树基础 左边的孩子节点 < 父节点的值,右边孩子节点 > 父节点的值 每棵二叉搜索树的子树也是一棵二叉搜索树 10 充当根节点 18 > 根节点,应该放在根节点的右边:3 & ...

  9. 真c++ 从二叉树到红黑树(3)之二叉搜索树BST

      此文章为从二叉树到红黑树系列文章的第三节,主要介绍介绍二叉搜索树BST,为AVL和RedBlack打下基础 文章目录 一.前面文章链接~(点击右边波浪线可以返回目录) 二.二叉搜索树BST的定义~ ...

最新文章

  1. MVC - 17.OA项目
  2. 关于Google Storage的东西
  3. 电影混混天团经典的台词
  4. JavaScript、PHP、Golang、Haskell、Elixir,哪个才是最佳编程语言?
  5. 解决java中对URL编码的问题
  6. 阶段3 3.SpringMVC·_05.文件上传_2 文件上传之传统方式上传代码回顾
  7. 回顾2020的爷青结:有哪些记忆里的应用正在消逝!
  8. 【开发工具集】功能强大的网络设置工具——IPOP
  9. fckeditor for java_基于java使用FCKeditor
  10. oracle发生20001,Oracle IMP数据时报20001错误
  11. 一起玩react 你不知道的setState
  12. 兰州大学第一届『飞马杯』程序设计竞赛
  13. 用python导入dmp到oracle
  14. 面试官问我new Vue阶段做了什么?
  15. ios系统软件迁移到安卓_教你把ios系统移植到安卓手机
  16. 次更新不适用您的计算机,Windows系统安装补丁时提示“此更新不适用于你的计算机”的解决方案!...
  17. JS往数组中添加字段
  18. Qt音视频开发7-ffmpeg音频播放
  19. JAVA SE_part.2
  20. CentOS 6.10安装Python2.7.15【全过程-含yum及pip问题处理】

热门文章

  1. 为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)
  2. ABI 与 API 的区别(应用程序二进制接口、应用程序编程接口)
  3. C语言 变量 函数 (类型、作用域、生命周期、存储位置)
  4. 【编译原理】构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 7.)(笔记)解释器 interpreter 解析器 parser 抽象语法树AST
  5. Python的第一种数据类型——Number(数字)
  6. Python使用socket实现局域网传输数据(附加json数据传输及解析)以及判断socket是否断开连接
  7. 关于Dockerfile那些事: 基础镜像的坑
  8. AcWing算法提高课 Level-3 第二章 搜索
  9. c mysql 延时_Mysql 优化之延迟索引和分页优化
  10. 梦幻手游登录显示服务器爆满,《梦幻西游》手游全服爆满,iOS二区开启_ 《梦幻西游》手游官网-人人都玩,无处不在...