数据结构——二叉搜索树、B树、B-树

数据结构——二叉搜索树、B树、B-树

1. 综述

  二叉排序树(Binary Sort Tree),又叫二叉查找树(Binary Search Tree),也叫二叉排序树。

  二叉搜索树满足以下性质:

  1. 若根节点左子树不为空,则左子树上的所有节点均小于根节点;

  2. 若根节点右子树不为空,则右子树上的所有节点均大于根节点;

  3. 其左右子树也是二叉搜索树(递归定义);

  4. 没有键值相等的点。

  B树就是B-树。B树/B-树英文叫B-Tree,可能被不小心翻译成了B-树。

时间: 2024-10-17 14:13:35

数据结构——二叉搜索树、B树、B-树的相关文章

数据结构-二叉搜索树(BST binary search tree)

本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 二叉搜索树简介 顾名思义,二叉搜索树是以一棵二叉树来组织的,这样的一棵树可以用一个链表数据结构来表示,每个节点除了key和卫星数据(除了二叉树节点的基本数据以外人为添加的数据,这些数据和树的基本结构无关),还有left.right.parent,分别指向节点的左孩子.右孩子和父节点,如果对应的节点不存在则指向NIL节点(因为最简单的二叉搜索树中的NIL节点里并没有有用的信息,所以在实现的时候简

数据结构-二叉搜索树与双向链表

题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 分析:首先不能创建新的结构,只能在树的前提下进行改变指针的指向.又由于是二叉搜索树,可以通过画图分析可知,二叉搜索树的左子树小于根节点小于右子树,可以发现是个递归过程也是一个中序遍历.所以只需要在中序那块进行指针调整. /* 剑指offer面试题27 */ #include <iostream> using namespace std; struct BinaryTree{

Java数据结构——二叉搜索树

定义二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值: 它的左.右子树也分别为二叉排序树. 性质1,任意节点x,其左子树中的key不大于x.key,其右子树中的key不小于x.key.2,不同的二叉搜索树可以代表同一组值的集合.3,二叉搜索树的基本操作和树的高度成正比,所以如果是一棵完全二叉树

[数据结构]二叉搜索树(BST) VS 平衡二叉排序树(AVL) VS B树(平衡多路搜索树) VS B+树 VS 红黑树(平衡二叉B树)

1 二叉排序树/二叉查找树/Binary Sort Tree 1种对排序和查找都很有用的特殊二叉树 叉排序树的弊端的解决方案:平衡二叉树 二叉排序树必须满足的3条性质(或是具有如下特征的二叉树) 若它的左子树不为空,则:左子树上所有结点的值< 它根结点的值 若它的右子树不为空,则:右子树上所有结点的值 > 它根结点的值 它的左子树.右子树也分别为二叉排序树(递归性) (按照如上定义,即: 1 无键值相等的结点 2 中序遍历一颗二叉树时,可得一个结点值递增的有序序列) 2 平衡二叉排序树/Bal

数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)

二叉搜索树(Binary Search Tree),简称BST,顾名思义,一颗可以用于搜索的二叉树.BST在数据结构中占有很重要的地位,一些高级树结构都是其的变种,例如AVL树.红黑树等,因此理解BST对于后续树结构的学习有很好的作用.同时利用BST可以进行排序,称为二叉排序,也是很重要的一种思想. 二叉树的性质:任意一个节点的所有左子树元素都比该元素值要小,而所有右子树元素都比该元素值要大. 符合该性质的二叉树就是一颗二叉搜索树,当然前提下是树中不允许有重复元素. 所有的二叉搜索树的中序遍历序

LeetCode动画 | 1038. 从二叉搜索树到更大和树

今天分享一个LeetCode题,题号是1038,标题是:从二分搜索树到更大和数. 题目描述 给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和. 提醒一下,二叉搜索树满足下列约束条件: 1)节点的左子树仅包含键小于节点键的节点. 2)节点的右子树仅包含键大于节点键的节点. 3)左右子树也必须是二叉搜索树. 示例: 输入:[4, 1, 6, 0, 2, 5, 7, null, null, null, 3, nu

数据结构 ---- 二叉搜索树

一直对于二叉搜索树(又叫二叉排序树,也叫二叉查找树),没有很好的理解,决定花点时间来学习and总结.. 二叉搜索树也是二叉树的一种.(就像堆也就二叉树的一种一样...) 只不过,二叉搜索树也是有其他要求:对于所有的子树,其根节点的值大于左子树上的所有结点的值,而小于右子树上所有结点的值的值.. 对于错误的理解:对于所有的结点,要大于其左结点,小于其右结点..(PS:这种理解是错误的,一定要注意..) 还有一点需要注意的是:我们的大于和小于都应该是严格的. ========== 下面主要针对,其建

数据结构-二叉搜索树的js实现

一.树的相关概念 1.基本概念 子树 一个子树由一个节点和它的后代构成. 节点的度 节点所拥有的子树的个数. 树的度 树中各节点度的最大值 节点的深度 节点的深度等于祖先节点的数量 树的高度 树的高度等于所有节点深度的最大值 森林 若干课互不相交的树的集合.任何一棵树,删去根节点就变成了森林. 2. 二叉树 二叉树的定义 (1)二叉树中每个节点的度不大于2 (2)二叉树是有序的,其子树有左右之分,其次序不能随意颠倒 二叉树的性质 第k层上最多有2^(k-1)个节点 深度为k的二叉树最多有2^(k

算法导论 第三部分——基本数据结构——二叉搜索树

一.什么是二叉搜索树 二叉查找树是按照二叉树结构来组织的,因此可以用二叉链表结构表示.二叉查找树中的关键字的存储方式满足的特征是:设x为二叉查找树中的一个结点.如果y是x的左子树中的一个结点,则key[y]≤key[x].如果y是x的右子树中的一个结点,则key[x]≤key[y].根据二叉查找树的特征可知,采用中根遍历一棵二叉查找树,可以得到树中关键字有小到大的序列. 二叉树的查找.最大/小.前驱和后继的伪代码: 复杂度都是 h //search 递归版 TREE_SEARCH(x,k) if