数据结构解析

二叉树数据结构

二叉树就是一个根节点下面有很多个子节点,同时子节点存储的时候会和根节点做比较,当子节点比根节点小时会存储在根节点的左边,当子节点比根节点大的时候会存在根节点右边,但是,我们去找一个有序的数字时,我们的IO操作会逐渐变多,比如你把1,2,3,4,5,6,7,8…一个有序的数字存放在二叉树中,那么你要查找7时,你要进行7次IO操作。
在这里插入图片描述
这样其实是比较耗时的。

红黑树数据结构

红黑树是针对于二叉树做了一个平衡处理看图比较好理解。
在这里插入图片描述
比如你存储的数据是1,2,3,4,5,6,7,8 那么他就会把中间的数据当做根节点,然后在采用二叉树的存储方式,但是,该数据接口的缺点是无法控制他的高度,加入你有几百万的数据存放在这个数据结构中,那么你要去查找一个比较大的数,也是要经过很多次的IO操作,因为你的红黑树高度是不可控的,高度就是指,你只要往里面存,他的数据结构就一直往下延伸

B-Tree数据结构

B-Tree就是对红黑树做了一个高度控制
在这里插入图片描述
同样也是采用红黑树存储的方式,但是他把高度限制了。看上图我们可以看到,从1-13,我们只是把横向的高度扩大了,纵向高度,没有向红黑树那样扩大。
另外给大家准备好了一个模拟数据结构的网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
对了忘记说了,B-Tree和红黑树查找方式都是比对大小,比如13个有序的数据,红黑树你要查找10,那么你会取到10这个数,跟根节点比对,如果比根节点大,那么就去他的右边找,如果比根节点小就去左边查找,B-tree查找方式也是相同的

发布了3 篇原创文章 · 获赞 0 · 访问量 50
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览