12、数据结构与算法 - 基础:红黑树(1)概述
摘要 红黑树是数据结构中重要的一种结构,其本质是通过定义一些性质,让二叉树分布结构变的相对合理,并在动态添加或者删除的过程中去修复结构。红黑树在搜索、添加、删除这 3 种操作的效率相对比较均衡,所以有很多实际的应用场景。 红黑树是数据结构中...
摘要 红黑树是数据结构中重要的一种结构,其本质是通过定义一些性质,让二叉树分布结构变的相对合理,并在动态添加或者删除的过程中去修复结构。红黑树在搜索、添加、删除这 3 种操作的效率相对比较均衡,所以有很多实际的应用场景。 红黑树是数据结构中...
摘要 B树是一种平衡的多路搜索树,在添加、删除和搜索等一些操作上和二叉搜索树是同样的逻辑,除此之外 4 阶 B 树在结构上和红黑树也是相似的。所以了解 B 树,可以更好的切入学习红黑树。 B树是一种平衡的多路搜索树,在添加、删除和搜索等一些...
公众号:“皇子谈技术”主理人
AVL 树 是最早时期发明的自平衡二叉搜索树之一。是依据它的两位发明者的名称命名。 AVL树有一个重要的属性,即平衡因子(Balance Factor),平衡因子 == 某个节点的左右子树高度差。 AVL树特点总结下来有: 每个节点的平衡因...
摘要 二叉搜索树的特性-节点的左侧部分比它小,右侧部分比它大,使得二叉搜索树在查找节点有二分法的效果,也提高了它的添加和删除处理,毕竟添加和删除也是先查找位置,然后再处理。 平衡二叉搜索树就是持续保证这样的高效性,进入正题: 二叉搜索树的特...
摘要 如果使用线性表存放 n 个元素时,时间复杂度是 O(n)。如果使用二分法搜索,可以降低时间复杂度,为 O(logn),但是添加和删除的平均时间复杂度是 O(n)。 使用二叉搜索树,可以让添加、删除、搜索的最坏时间复杂度优化到 O(lo...
完全二叉树判断(判断) 完全二叉树的叶子节点只会出现最后两层,且最后一层的叶子节点都靠左对齐。根据定义来看,度为 1 的节点只会在左子树,度为 1 的节点要么是 1 个,要么是 0 个。 完全二叉树属于二叉树,即每个节点的度最大为 2。 度...
摘要 二叉树是树结构中最基础,也是最重要的结构。由二叉树衍生出多种不同类型的二叉树,当学习完二叉树的不同衍生结构后,会发现,都不能逃离二叉树的定义和特定。 二叉树是树结构中最基础,也是最重要的结构。由二叉树衍生出多种不同类型的二叉树,当学习...
队列的定义 队列也是一种线性表,只能在头尾两端进行操作,主要特点: 队尾:只能从队尾添加元素,叫做入队(enQueue) 队头:只能从队头移除元素,叫做出队(deQueue) 先进先出元素,First In First Out(FIFO) ...
1、简介 BlockingDeque支持在获取元素时等待双端变为非空的阻塞操作,并在存储元素时等待双端面中的空间变为可用。 方法有四种形式,具有不同的处理操作的方式: 第一种抛出异常。 第二种返回特殊值( null 或 false,取决于操...
1、简介 BlockingQueue 实现设计为主要用于生产者-消费者队列,其实现是线程安全的。所有排队方法都使用内部锁或其他形式的并发控制以原子方式实现其效果 支持在获取元素时等待队列变为非空,并在存储元素时等待队列中的空间变为可用的操作...