共计 626 个字符,预计需要花费 2 分钟才能阅读完成。
1、概述
堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指二叉树。所以堆在数据结构中通常可以被看做是一棵树的数组对象。而且堆需要满足一下两个性质:
(1)堆中某个节点的值总是不大于或不小于其父节点的值;
(2)堆总是一棵完全二叉树。
2、堆数据结构的应用
TreeSet 集合底层采用的就是二叉树 (更具体来说 TreeSet 集合底层采用的是红黑树,红黑树是二叉树的一种,具有自平衡的优点)
二叉树的数据结构图
TreeSet 集合存储数据的代码演示
// 创建集合对象
TreeSet<Integer> ts = new TreeSet<Integer>();
// 往集合添加元素
//20,18,23,22,17,24,19,18,24
ts.add(20);
ts.add(18);
ts.add(23);
ts.add(22);
ts.add(17);
ts.add(24);
ts.add(19);
ts.add(18);
ts.add(24);
// 遍历
for(Integer i:ts){System.out.println(i);
}
// 结果:17 18 19 20 22 23 24
元素是如何存储进 TreeSet 集合中去的
(1)第一个元素存储的时候,直接作为根节点存储
(2)从第二个元素开始,每个元素从根节点开始比较
大:就作为右孩子
小:就作为左孩子
相等:就不搭理它
元素是如何从 TreeSet 集合中取出来的
从根节点开始,按照左、中、右的原则依次取出元素
结果如下:
正文完
星哥玩云-微信公众号