任何一个伟大的目标,都有一个微不足道的开始。
摘要: 目录 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 一、概念及其介绍 索引堆是对堆这个数据结构的优化。 索引堆使用了一个新的 int 类型的数组,用于存放索引信息。 相较于堆,优点如下: 优化了交换元素的消耗。加入的数据位置固定,方... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(41) 评论(0) 推荐(0)
摘要: 目录 一、概念及其介绍 二、适用说明 三、二分查找法过程图示 四、Java 实例代码 一、概念及其介绍 二分搜索树(英语:Binary Search Tree),也称为 二叉查找树 、二叉搜索树 、有序二叉树或排序二叉树。满足以下几个条件: 若它的左子树不... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(41) 评论(0) 推荐(0)
摘要: 目录 二分搜索树节点的插入 Java 实例代码 二分搜索树节点的查找 Java 实例代码 二分搜索树节点的插入 首先定义一个二分搜索树,Java 代码表示如下: BST.java public class BST, Value> { // 树中的节点... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(64) 评论(0) 推荐(0)
摘要: 目录 二分搜索树深度优先遍历 Java 实例代码 二分搜索树层序遍历 Java 实例代码 二分搜索树深度优先遍历 二分搜索树遍历分为两大类,深度优先遍历和层序遍历。 深度优先遍历分为三种:先序遍历(preorder tree walk)、中序遍历(inor... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(54) 评论(0) 推荐(0)
摘要: 本文介绍二分搜索树节点的删除之前,先介绍如何查找最小值和最大值,以及删除最小值和最大值。 以最小值为例(最大值同理): 查找最小 key 值代码逻辑,往左子节点递归查找下去: ... // 返回以node为根的二分搜索树的最小键值所在的节点 private... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(35) 评论(0) 推荐(0)
摘要: 目录 并查集 size 的优化 Java 实例代码 并查集 rank 的优化 Java 实例代码 并查集 size 的优化 按照上一篇文章的思路,我们把如下图所示的并查集,进行 union(4,9) 操作。 合并操作后的结构为: 可以发现,这个结构的树... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(65) 评论(0) 推荐(0)
摘要: 并查集基础 一、概念及其介绍 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。 二、适用说明 并... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(57) 评论(0) 推荐(0)
摘要: 并查集里的 find 函数里可以进行路径压缩,是为了更快速的查找一个点的根节点。对于一个集合树来说,它的根节点下面可以依附着许多的节点,因此,我们可以尝试在 find 的过程中,从底向上,如果此时访问的节点不是根节点的话,那么我们可以把这个节点尽量的往上挪一挪... 阅读全文
posted @ 2022-04-29 22:16 思无邪buff 阅读(110) 评论(0) 推荐(0)