
数据结构
文章平均质量分 75
就着嘎巴菜喝大碴粥
这个作者很懒,什么都没留下…
展开
-
B+树操作方式
1 简介B+树与B树相似, 也存在不同. 可以理解为把所有元素都放在叶子节点, 索引B树化的树.B+树的一些性质:1. B+树的节点分类: 内部节点(索引节点), 叶子节点.如果只有根节点有元素, 那么其可以是内部节点也可以是叶子节点.2. B+树与B树最大的不同是内部节点不保存数据, 只用与索引, 所有数据都放在叶子节点3. 跟B树相同的性质: m阶B+树每个节点(包括叶子节点和内部节点)最多有m-1个关键字4. 节点内部的key同B树相同, 也是从小到大排列, 对于内部节点的每.原创 2021-08-06 15:04:48 · 690 阅读 · 0 评论 -
多路平衡查找树 --- B(B-)树
1 简介可以用阶数来描述B树, 一棵M阶B树代表着该B树最多有M个孩子节点. 如果M为2, 那么该B树就是一棵二叉搜索树. 一棵M阶B树具有以下性质:1. 每个节点最多有M - 1个关键字.跟普通的树不同, B树的关键字有多个.2. 根节点最少可以只有一个关键字.3. 非根节点至少有k个关键字, 这里的k是指ceil(M / 2) - 1.(这里面的ceil是指大于等于参数的最小整数, 从下面插入操作分析可知, 叶子节点都是由父节点分裂而来, 而分裂的条件就是分裂前节点总数已经达到了M).原创 2021-07-28 17:29:07 · 720 阅读 · 0 评论 -
哈夫曼树(最优二叉树)
1 用途现在假如有一个需求, 把一个很长的字符串用二进制编码的形式存储, 要尽可能的占用较小空间, 那么应该怎么存储呢. 肯定是要确定每个字母的编码方法, 比如 001是A, 010是B等. 那么要怎么确定每个字符编成什么二进制码从而使得总长度最短? 一个根本思想是, 出现频率高的字母尽量编码短一些, 出现频率少的字符长一些. 这样就需要有一种方法去确定每个字符的二进制编码的方法, 需要构建一棵树 --- 哈夫曼树.2 方法举个例子, 现有一个字符串, 其中所有字符出现频率如下:A: 60,原创 2021-07-23 16:43:00 · 551 阅读 · 0 评论 -
二叉树的线索化
1 简介深度优先的二叉树遍历方法有先序, 中序和后序. 那么一棵有n个节点的树, 其一共会存储2n个指针, 但是因为只有n - 1条边, 所以只有n - 1个指针会被存储, 剩下的n + 1都会存为nullptr, 那么可以把所有的空指针利用起来. 其中如果某个节点的左子节点为空的话, 可以按照当前遍历方式(先序, 中序, 后序)存储其前驱结点, 右子节点为空的话, 可以存储后继节点.2 结构普通的二叉树节点的结构为:struct TreeNode { int val; T原创 2021-07-23 15:26:20 · 134 阅读 · 0 评论 -
数据结构中的树 --- 红黑树
1.原创 2021-07-21 20:09:30 · 120 阅读 · 0 评论 -
数据结构中的树
1. 树即是以层次化方式组织和存放数据的特定数据结构边:根节点:叶子节点:树高:节点深度:2. 二叉树每个节点最多有两个子节点, 即左孩子和右孩子2.1 二叉树遍历方式2.1.1 深度优先(DFS)2.1.2 广度优先(BFS)2.2 二叉搜索树...原创 2021-07-13 20:06:31 · 165 阅读 · 0 评论 -
二叉树的遍历方式
主要分为前序, 中序, 后序, 层序, 深度优先, 广度优先.原创 2021-06-23 15:11:37 · 108 阅读 · 0 评论