二叉树可视化
- 运行演示
- 代码和程序已上传
- 二叉树知识
- 平衡二叉树
- 红黑树
- 最优二叉搜索树
- 哈夫曼树
- KD树
- B树和B+树
- 参考
运行演示
学习二叉树总是脑补图像,实在是恶心,就想写一个能可视化的二叉树,结果没控制好,功能越想越多,先整一个半成品吧,最起码能建立二叉树了。
功能包括创建随机二叉树,输入序列二叉树,前中序生成二叉树,二叉树平衡化,30多个结点表现还凑合,结点多了就难看了,毕竟指数增加。
红黑树还没搞清楚,手撕红黑树真的是烧脑,等整清楚了再来添加!~
代码和程序已上传
二叉树可视化程序和代码
二叉树知识
这个东西就是排序树,也叫搜索树,排序和搜索有时候混着用,一会儿叫搜索树一会儿叫排序树,挺坑爹的。看应用关注是排序还是搜索。
平衡二叉树
平衡二叉树是左右孩子高度差不大于1,这种树关注查找,通过牺牲插入和删除的效率让数据足够扁平,达到对数级别的性能。
红黑树
红黑树属于泛化的平衡二叉树,左右孩子高度差没有平衡二叉树严格,但是也有限制。没撕清楚。主要应用的也是搜索,可以说是平衡二叉树的实现。关注查找数据。STL的Map是利用红黑树实现的,这个也是道听途说,到底是不是还得翻代码确认。
最优二叉搜索树
最优二叉搜索树和哈夫曼树是静态数据分析建树。树建好以后改动少。带有统计意味,各种和概率挂钩。这个和哈夫曼树有点区别是需要考虑查找失败的情形。
哈夫曼树
和哈夫曼编码拉扯。应用也是静态数据,统计数据概率后编码一下。两端通信时想办法把编码树同步到对端。则发送的信息就可解码读取了,也可以算是一种加密方式。
KD树
多维数据划分,搜资料想到信息如果按照kd组织的话可以查找范围内数据。是不是比距离判定好些,也需要验证。
B树和B+树
数据库用到的多些,B树主要是构建目录,B+树数据存储在叶子节点。一个需要注意的是数据库存储都是在磁盘里面的,不是内存数据,从磁盘倒腾到内容代价太大,所以通过分页建立目录定位准确后一片一片的加载到内存来使用数据。
参考
数据结构
算法设计与分析
数据库系统