1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update 数据结构.md

This commit is contained in:
Snailclimb 2018-05-09 16:28:13 +08:00 committed by GitHub
parent 602f2a577e
commit 67587bbeed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,11 +1,14 @@
在我们学习Java的时候很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况我本人之前就很迷茫。所以我决定通过这个开源平台来帮助一些有需要的人通过下面的内容你会掌握系统的Java学习以及面试的相关知识。本来是想通过Gitbook的形式来制作的后来想了想觉得可能有点大题小做。另外我自己一个人的力量毕竟有限希望各位有想法的朋友可以提issue和pull。 在我们学习Java的时候很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况我本人之前就很迷茫。所以我决定通过这个开源平台来帮助一些有需要的人通过下面的内容你会掌握系统的Java学习以及面试的相关知识。本来是想通过Gitbook的形式来制作的后来想了想觉得可能有点大题小做。另外我自己一个人的力量毕竟有限希望各位有想法的朋友可以提issue和pull。
-----------**最新更新5/9/16:00**----------
**Java面试通关手册Java学习指南github 地址**[https://github.com/Snailclimb/Java_Guide](https://github.com/Snailclimb/Java_Guide) **Java面试通关手册Java学习指南github 地址**[https://github.com/Snailclimb/Java_Guide](https://github.com/Snailclimb/Java_Guide)
如果你觉得有什么问题可以给我提issue觉得不错的话你也可以star一下。目前更新的内容并不多因为为了保证文章质量每一篇文章我自己都看了一遍希望大家贡献自己的力量完善。 如果你觉得有什么问题可以给我提issue觉得不错的话你也可以star一下。目前更新的内容并不多因为为了保证文章质量每一篇文章我自己都看了一遍希望大家贡献自己的力量完善。
### 数据结构 ### 数据结构
推荐学习视频:[浙江大学数据结构国家精品教程](https://www.icourse163.org/learn/ZJU-93001?tid=1002019005) 推荐学习视频:[浙江大学数据结构国家精品教程](https://www.icourse163.org/course/ZJU-93001)
- **Queue** - **Queue**
[Java集合类分析之Queue](http://wanglizhi.github.io/2016/06/18/Java-Queue/) [Java集合类分析之Queue](http://wanglizhi.github.io/2016/06/18/Java-Queue/)
@ -54,12 +57,18 @@
* **2 完全二叉树** * **2 完全二叉树**
[完全二叉树](https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91)(百度百科) [完全二叉树](https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91)(百度百科)
完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树
* **3 满二叉树** * **3 满二叉树**
[满二叉树](https://baike.baidu.com/item/%E6%BB%A1%E4%BA%8C%E5%8F%89%E6%A0%91)(百度百科,国内外的定义不同) [满二叉树](https://baike.baidu.com/item/%E6%BB%A1%E4%BA%8C%E5%8F%89%E6%A0%91)(百度百科,国内外的定义不同)
国内教程定义一个二叉树如果每一个层的结点数都达到最大值则这个二叉树就是满二叉树。也就是说如果一个二叉树的层数为K且结点总数是(2^k) -1 ,则它就是满二叉树。 国内教程定义一个二叉树如果每一个层的结点数都达到最大值则这个二叉树就是满二叉树。也就是说如果一个二叉树的层数为K且结点总数是(2^k) -1 ,则它就是满二叉树。
* **堆**
[数据结构之堆的定义](https://blog.csdn.net/qq_33186366/article/details/51876191)
堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆
* **4 二叉查找树BST** * **4 二叉查找树BST**
[浅谈算法和数据结构: 七 二叉查找树](http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html) [浅谈算法和数据结构: 七 二叉查找树](http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html)
@ -69,11 +78,11 @@
1. 若任意节点的左子树不空,则左子树上所有结点的 值均小于它的根结点的值; 1. 若任意节点的左子树不空,则左子树上所有结点的 值均小于它的根结点的值;
2. 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 2. 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
3. 任意节点的左、右子树也分别为二叉查找树。 3. 任意节点的左、右子树也分别为二叉查找树。
4. 没有键值相等的节点no duplicate nodes 4. 没有键值相等的节点no duplicate nodes
* **5 平衡二叉树Self-balancing binary search tree** * **5 平衡二叉树Self-balancing binary search tree**
[ 平衡二叉树](https://baike.baidu.com/item/%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91)百度百科平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等 [ 平衡二叉树](https://baike.baidu.com/item/%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91)百度百科平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等
* **6 红黑树** * **6 红黑树**
红黑树特点: 红黑树特点: