随笔分类 - 二叉树
摘要:一、最大堆的定义 最大堆是一棵完全二叉树,而且每个结点的值都不小于其孩子结点的值。 二、选择数组作为最大堆的内存表现形式 由于最大堆是一棵完全二叉树,所以我们使用数组的形式来存储最大堆的值,并从1号单元开始存储。 假设树的节点个数为n,以1为下标开始编号,直到n结束。对于下标为 i 的结点,其父结点
阅读全文
摘要:一、B+树是应文件系统所需而产生的一种B树的变形树 1. 定义(使用阶数m来定义) 所有的叶子节点包含了全部的关键字以及指向含有这些关键字记录的指针,并且: 同一叶子节点中的关键字按大小顺序排列 相邻的叶子节点顺序链接(相当于是构成了一个顺序链表) 所有叶子节点在同一层 2. 和B树的区别 对于非终
阅读全文
摘要:一、B 树是一种多叉平衡查找树 相较于二叉结构的红黑树,B 树是多叉结构,所以在元素数量非常多的情况下,B 树的高度不会像二叉树那么大,从而保证查询效率。 一棵含 n 个结点的 B 树的高度 h = O(logtn),其中 t 是 B 树的最小度数。 提出多叉平衡查找树的思维历程:查询效率要更高 >
阅读全文
摘要:二叉查找树因可能退化成链表,故其性能最差。平衡二叉树和红黑树是带有平衡条件的二叉查找树,故它们的效率也较高。 平衡二叉树的插入/删除操作带来的旋转操作可能会达到logn次,而红黑树的插入/删除操作带来的旋转操作最多为2/3次。 所以说,当红黑树出现的时候,平衡二叉树就只能出现在博物馆里了。即红黑树是
阅读全文
摘要:一、红黑树是一种弱平衡二叉树 定义:红黑树是一种特殊的二叉查找树,在其结点结构中增加一个存储位表示结点的颜色。 重要性质:通过遵循对结点着色的某种规则,对于所有从根结点到叶子结点的路径,红黑树确保没有一条路径会比其他路径长出两倍。 二、红黑树的平衡条件 相对于平衡二叉树的平衡条件,该平衡条件较为宽松
阅读全文
摘要:一、平衡二叉树是带有平衡条件的二叉查找树 平衡条件:平衡二叉树的每个结点的左子树和右子树的高度最多差1。 平衡因子 bf :左子树的高度减去右子树的高度,显然 bf 的取值范围是 [ -1, 1 ] 。每一个结点(在其结点结构中)保留平衡因子 bf 。 补:虽然平衡二叉树能确保树的高度为O(logn
阅读全文
摘要:一、二叉查找树是二叉树在查找领域的扩展,它既具有二分查找的高效性,又具有链表插入的灵活性 二分查找的高效性:每迭代一次,查找的范围就缩小一半。对于二叉查找树来说,每次查找的范围减少一棵子树(理想的情况是少一半结点)。 链式插入的灵活性:二叉查找树是链式结构,故插入结点不需要移动大段的内存数据,具备链
阅读全文
摘要:一、建立一个如下图所示的二叉树并打印出来。 图 1 它的前序遍历顺序为:621438 它的中序遍历顺序为:123468 它的后序遍历顺序为:134286 它的层次遍历顺序为:628143 二、二叉树的建立 由于二叉树的定义是递归的,所以用递归的思想建立二叉树是很自然的想法。 1. 以前序遍历的方式
阅读全文