TreeSet 类概述 使用元素的自然顺序对元素进行排序 或者根据创建 set 时提供的 Comparator 进行排序 具体取决于使用的构造方法。 TreeSet 是如何保证元素的排序和唯一性的 底层数据结构是红黑树(红黑树是一种自平衡的二叉树) TreeSet 真正的比较是依赖于元素的 comp ...
分类:
其他好文 时间:
2019-01-31 13:07:24
阅读次数:
212
文章是对邓俊辉老师数据结构教程的总结,部分图片资料来自邓俊辉老师的教学PPT 建议阅读前先阅读参考文章的第二,三文章,总结得非常好! 文章部分代码和图片来自参考文章的第二,三文章!! 阅读前提几个问题吧 ,帮助思考 为什么需要平衡二叉树 AVL 需要两次旋转的操作为什么不直接分解为左旋和右旋,还要L... ...
分类:
其他好文 时间:
2019-01-29 23:13:04
阅读次数:
345
内容: 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 ...
分类:
其他好文 时间:
2019-01-29 23:05:42
阅读次数:
150
本文给对数据结构中的重点内容需要掌握的知识点进行总结,给出一个大概框架。数据结构的主要内容包括线性结构(线性表、栈和队列、串、数组和广义表)、树与二叉树、图、查找以及排序。 线性表是整个数据结构的重要基础,需要熟练掌握顺序表和链表的查找、插入和删除算法、链表的创建算法,并能够设计出线性表应用的常用算 ...
分类:
其他好文 时间:
2019-01-19 11:18:27
阅读次数:
203
题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 如果一棵树只有一个结点,它的深度为1,如果根节点只有左子树而没有右子树,那么树的深度应该是其左子树的深度+1.同样如果根节点只有右子树而没有左子树,那么树的深度应该是 ...
分类:
其他好文 时间:
2019-01-14 23:16:54
阅读次数:
334
一、set介绍: Map由红黑树实现,其元素都是“键值/实值”所形成的一个对组(key/value pairs)。每个元素有一个键,是排序准则的基础。每一个键只能出现一次,不允许重复。 Map主要用于资料一对一映射(one to one)的情况,map内部自建一颗红黑树(平衡二叉树中的一种),这颗树 ...
分类:
编程语言 时间:
2019-01-13 00:19:04
阅读次数:
173
假设一个二叉查找树中的数据都是链式的(即都集中在左子树或者右子树),那么这时候对该二叉查找树进行查找的时间复杂度就是$O(n)$,背离了二叉查找树用来优化数据查询的目的。而平衡二叉树可以使树的高度在每次插入元素后,查询操作仍然能保持$O(logn)$的时间复杂度。 对平衡二叉树的任意结点来说,要保证 ...
分类:
其他好文 时间:
2019-01-11 20:07:12
阅读次数:
221
<!--done--> B+树介绍 目录 B+树 B+树的插入操作 B+树的删除操作 回到顶部 B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有 ...
分类:
其他好文 时间:
2019-01-10 16:29:24
阅读次数:
107
链接:https://codeforces.com/problemset/problem/675/D 题意: 给一个二叉搜索树,一开始为空,不断插入数字,每次插入之后,询问他的父亲节点的权值 题解: 由二叉搜索树的有序性质, 他的父亲节点一定是和他向上和向下最接近的两个中,最后插入的那一个 那么我们 ...
分类:
其他好文 时间:
2019-01-05 19:59:41
阅读次数:
214
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 /*public class TreeNode{ public int val; public TreeNode left; public TreeNode right; public TreeNode (int x) { val = x; ...
分类:
其他好文 时间:
2018-12-31 18:54:06
阅读次数:
166