22 22
4年前
一篇文章帮你搞懂二叉堆的那些事
【系列文章推荐阅读】1.什么是二叉堆?“二叉”自不必多说,本章主要介绍的树都是二叉树。那么啥是“堆”呢?我们在日常生活中,通常会说“一堆东西”或者“堆东西”,这里的“堆”,通常指重叠放置的许多东西。我们在堆东西的时候,肯定都有一个经验,即:为了使这堆东西更稳定,会将比较重的、大的东西放在下面,比较轻的、小的东西放在上面。这个经验放在数据结
Wesley13 Wesley13
3年前
java——平衡二叉树 AVLTree、AVLMap、AVLSet
平衡二叉树:对于任意一个节点,左子树和右子树的高度差不能超过1packageDate_pacage;importjava.util.ArrayList;publicclassAVLTree<KextendsComparable<K,V{privateclassNod
zhenghaoz zhenghaoz
4年前
算法笔记:B树
B树广泛应用于各种文件系统,文件系统中,数据都是按照数据块来进行读取操作。结合二叉树的优点和文件系统的特点,于是就有了B树:btree(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/ae3caa193bc4c55f0519114b15313721.png)B树当中每个节点存储
zhenghaoz zhenghaoz
4年前
算法笔记:红黑树
红黑树,一种平衡二叉树,最为著名的应用就是CSTL中的map,是有序集合最为理想的存储方式之一。除了二叉树所具有的属性之后,红黑树中每个节点多了一个“颜色”属性,可以是红色或者是黑色。一棵红黑树应该满足一下的性质:1.每个节点是红色或者黑色的;2.根节点是黑色的;3.每个叶节点nil是黑色的(使用哨兵节点在删除调整时可以方便不少);4.如
Stella981 Stella981
3年前
Data Structures 之 树
链表的访问速度太慢,不适合大量的输入数据。而树的大部分运行时间平均为O(logN)。定义树的一种自然的额方式是递归的方法。1.实现二叉树TianryTree.htypedefintElementType;ifndefBINARYTREE_H_INCLUDEDdefine
Wesley13 Wesley13
3年前
Mysql表设计需要注意的问题
下面探讨的数据库为MySQL存储引擎为innodb因为这是最常见的,使用最多的数据库和引擎什么是页分裂?这是因为聚簇索引采用的是平衡二叉树算法,而且每个节点都保存了该主键所对应行的数据,假设插入数据的主键是自增长的,那么根据二叉树算法会很快的把该数据添加到某个节点下,而其他的节点不用动;但是如果插入的是不规则的数据,那么每次插入都会改变二叉树之前
Stella981 Stella981
3年前
C语言实现的基于Huffman哈夫曼编码的数据压缩与解压缩
实验目的了解文件的概念掌握线性链表的插入、删除等算法掌握Huffman树的概念及构造方法掌握二叉树的存储结构及遍历算法利用Huffman树及Huffman编码,掌握实现文件压缩的一般原理参考博文和源码下载地址:https://writebug.com/article/1281.html(https://www
Stella981 Stella981
3年前
Leetcode 783. 二叉搜索树结点最小距离
题目描述给定一个二叉搜索树的根结点root,返回树中任意两节点的差的最小值。!(https://uploadimages.jianshu.io/upload_images/97388075b2ef3e526250878.PNG?imageMogr2/autoorient/strip|imageView2/2/w/505)
菜园前端 菜园前端
2年前
什么是堆?
原文链接:什么是堆?堆是一种特殊的完全二叉树。完全二叉树的含义就是每层节点都完全填满,除了最后一层外只允许最右边缺少若干个节点。在JavaScript中通常用数组表示堆(按照广度优先遍历顺序)。最大堆最小堆特性所有的节点都大于等于它的子节点(最大堆)或者所
深度学习 深度学习
2天前
力扣701题:二叉搜索树插入操作 - 递归解法详解
一、内容简介本文详细解析了力扣701题"二叉搜索树中的插入操作"的递归实现方法。通过遵循二叉搜索树的性质,展示了如何高效地在BST中插入新节点。文章包含完整注释代码、算法思路讲解和复杂度分析,帮助读者掌握BST操作的核心技巧。二、算法思路‌递归终止条件‌: