B树为多路(多叉)搜索树,深度低,搜索数据时磁盘IO较少,多用于索引外存数据,只支持随机访问,不支持顺序访问; B+树是对B树的改进,内节点不保存数据地址指针(可保存更多关键字),内节点可看做为外节点的索引,所有数据地址存储在外节点,数据搜索效率一致。外节点依关键字组成顺序链表,支持区间搜索,且空间局部性好,缓存...
二叉树 特点 二叉树特点是,根节点有俩孩子,左小右大(左<根/中<右) 查找比线性链表或数组快 极端情况变链表 但是有一种极端情况,会退化成一个链表:数据从小到大或从大到小,比如: 1 2 3 4 5 6 7 放入二叉树 二叉树的遍历 组装一棵二叉树如下: 前序遍历(中->
1、二叉树(Binary Tree) 二叉树是每个节点最多有两个子节点的树。 二叉树的叶子节点有0个字节点,二叉树的根节点或者内部节点有一个或者两个字节点。 2、二叉搜索树(Binary Search Tree) 二叉搜索树, 又叫 二叉查找树, 它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点...
一、二叉树 1、二叉树的定义 二叉树(binary tree)是 n ( n >= 0 ) 个节点的有限集合,该集合或者是空集(简称为空二叉树),或者是由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。如下图所示: 2、二叉树的特点 (1)每一个节点最多有两棵子树,所以二叉树中不存在度大于2...
二叉排序树BST,也称二叉查找树。 平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构 二叉排序树的特点: 若左子树非空,则左子树上所有节点值均小于根节点的值。 若右子树非空,则右子树上所有节点值均大于根节点的值。 查找时间复杂度:O(h)h是树的高度 ...
基于二叉查找树的这种特点,在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logN)。之所以说是正常情况下,是因为二叉查找树有可能出现一种极端的情况,例如: 这种情况也是满足二叉查找树的条件,然而,此时的二叉查找树已经近似退化为...
基于二叉查找树的这种特点,在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logN)。之所以说是正常情况下,是因为二叉查找树有可能出现一种极端的情况,例如: 这种情况也是满足二叉查找树的条件,然而,此时的二叉查找树已经近似退化为...
完全二叉树:所有叶子结点都在最后一层或倒数第二层,且最后一层的叶子结点在左边连续,倒数第二层的叶子结点在右边连续。和堆联系比较紧密 平衡二叉树:AVL树(区别于AVL算法),是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,且左右两个子树都是一棵平衡二叉树。
AVL树全称G.M. Adelson-Velsky和E.M. Landis,这是两个人的人名。 平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树, 可以保证查询效率较高。 具有以下特点: 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1 ...
基于二叉查找树的这种特点,在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logN)。之所以说是正常情况下,是因为二叉查找树有可能出现一种极端的情况,例如: 这种情况也是满足二叉查找树的条件,然而,此时的二叉查找树已经近似退化为...