二叉树(BST)之创建二叉搜索树
二叉树搜索基本概念
二叉搜索树,以这样一种方式构成,在任何层、任何节点的直接左节点的存储值总是小于或等于其节点本身的值。所以节点的左子树总包含那些存储值小于或等于它的节点。同理,节点的右子树总包含那些存储值大于或等于它的节点。下述代码从根节点开始,并将当前节点的数据部分与正在插入的新数据结点进行了比较。如果新节点的数据小于当前节点的数据值,通过左子节点指针进行**递归调用相同函数**;否则,通过右子节点**递归调用相同函数**。
#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)之创建二叉搜索树相关推荐
- (一)BST树(二叉搜索树)
(一)BST树(二叉搜索树) 1.BST二叉搜索树 1.1BST树的定义 1 BST树也是一个二叉树,故满足递归定义; 2 其次每个节点只存在一个值; 3 需满足左子树值<=根值<=右子树 ...
- b+树时间复杂度_满二叉树、完全二叉树、二叉搜索树、平衡二叉树
"存在即合理"为什么需要每种树,本文不再冗余的总结每种树太多性质,就说重点. 二叉树(Binary Tree)主要包括:满二叉树.完全二叉树.二叉搜索树.平衡二叉树 性质太多,定义 ...
- 使用双向链表构建二叉树_python:26.二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 思路 1.二叉搜索树满足左子树的值<根结点的值<右子树的值,所 ...
- bst java_BST(二叉搜索树) Java 实现解析
1.二叉搜索树的定义:一颗树的所有左子树都比根小,所有右子树都比根大,成为二叉搜索树. 2.该BST树实现了9个重要方法,分别是关键字查找,插入,删除,删除节点后续节点查找,前序遍历,中序遍历,后序遍 ...
- 平衡搜索树(Binary Search Tree BST)、索引二叉搜索树
文章目录 二叉搜索树 索引二叉搜索树 测试代码 这里只给出代码实现. 更多的性质日后再补. 二叉搜索树 // // Created by SongyangJi on 2020/12/23. //#if ...
- BST | 1064 完全二叉搜索树
OJ:https://www.patest.cn/contests/pat-a-practise/1064 (一)23分(3个case未过)代码 建树的规律是我瞎猜的.首先用样例数据分析. 10 1 ...
- 一次聊个透彻:满二叉树、完全二叉树、二叉搜索树,二叉平衡树
一 满二叉树 1.1 满二叉树 国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树.也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉 ...
- 数据结构 --- c语言二叉搜索树(有序的树)
二叉搜索树基础 左边的孩子节点 < 父节点的值,右边孩子节点 > 父节点的值 每棵二叉搜索树的子树也是一棵二叉搜索树 10 充当根节点 18 > 根节点,应该放在根节点的右边:3 & ...
- 真c++ 从二叉树到红黑树(3)之二叉搜索树BST
此文章为从二叉树到红黑树系列文章的第三节,主要介绍介绍二叉搜索树BST,为AVL和RedBlack打下基础 文章目录 一.前面文章链接~(点击右边波浪线可以返回目录) 二.二叉搜索树BST的定义~ ...
最新文章
- MVC - 17.OA项目
- 关于Google Storage的东西
- 电影混混天团经典的台词
- JavaScript、PHP、Golang、Haskell、Elixir,哪个才是最佳编程语言?
- 解决java中对URL编码的问题
- 阶段3 3.SpringMVC·_05.文件上传_2 文件上传之传统方式上传代码回顾
- 回顾2020的爷青结:有哪些记忆里的应用正在消逝!
- 【开发工具集】功能强大的网络设置工具——IPOP
- fckeditor for java_基于java使用FCKeditor
- oracle发生20001,Oracle IMP数据时报20001错误
- 一起玩react 你不知道的setState
- 兰州大学第一届『飞马杯』程序设计竞赛
- 用python导入dmp到oracle
- 面试官问我new Vue阶段做了什么?
- ios系统软件迁移到安卓_教你把ios系统移植到安卓手机
- 次更新不适用您的计算机,Windows系统安装补丁时提示“此更新不适用于你的计算机”的解决方案!...
- JS往数组中添加字段
- Qt音视频开发7-ffmpeg音频播放
- JAVA SE_part.2
- CentOS 6.10安装Python2.7.15【全过程-含yum及pip问题处理】
热门文章
- 为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)
- ABI 与 API 的区别(应用程序二进制接口、应用程序编程接口)
- C语言 变量 函数 (类型、作用域、生命周期、存储位置)
- 【编译原理】构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 7.)(笔记)解释器 interpreter 解析器 parser 抽象语法树AST
- Python的第一种数据类型——Number(数字)
- Python使用socket实现局域网传输数据(附加json数据传输及解析)以及判断socket是否断开连接
- 关于Dockerfile那些事: 基础镜像的坑
- AcWing算法提高课 Level-3 第二章 搜索
- c mysql 延时_Mysql 优化之延迟索引和分页优化
- 梦幻手游登录显示服务器爆满,《梦幻西游》手游全服爆满,iOS二区开启_
《梦幻西游》手游官网-人人都玩,无处不在...