多叉树的可视化与遍历
来源:互联网 发布:深圳什么网络好 编辑:程序博客网 时间:2024/06/14 08:31
最近忙着做毕设,其中的骨架系统说白了就是一个多叉层次树结构,当整体框架已经差不多的时候,就一直思考着重构一下代码,因为最初只是为了实现效果,所以有很多地方的设计不是很合理。
先自己写了一个多叉树的小型库,支持用迭代器创建,递归遍历,销毁,试着增加一些其他功能,例如给前序迭代器增加了operator++,但是发现很多地方受到了node结构的限制。多叉树的node数据结构如下:
当然实际实现是使用模板。
网上找到了一个kptree,多叉树,觉的非常不错。
网址:http://www.aei.mpg.de/~peekas/tree/
他的node结构如下:
而且这个库基本上实现了多叉树所有的操作。类似STL基于迭代器操作。不支持树的没有递归操作。
于是我基于这个库写了一个脚本配置程序 class ScriptParser,继承于tree类
脚本格式:
节点类型:
- ROOT 表示根节点
- JOINT表示一般的非终端节点
- END表示终端叶子节点
树中的层次包含关系通过花括号包含表示。
最后利用OpenGL实现了可视化,写了一个Figure类继承与ScriptParser类,通过脚本来显示多叉树;
显示多叉树的时候为了视觉美观。进行了细节处理:
- 当有两个孩子,父节点位于孩子节点的中点位置。Y方向上有个高度差。
- 当有多个孩子时,保证在XOZ平面上父节点正好位于孩子节点的外接圆的的中心。
最终的脚本:
显示出来的效果:
遍历的时候,逐个激活节点,颜色变黄,半斤增大一点:
- 多叉树的可视化与遍历
- Flex+JS:实现可视化的多叉树遍历、查询、聚焦、添加、删除节点
- 数据结构与算法的可视化
- 可视化遍历二叉树
- Flex布局+JS:实现可视化的二叉树遍历
- 数据可视化、信息可视化与知识可视化
- 线程与可视化单元的通讯
- 真实感森林的建模与可视化
- 一个数据结构与算法可视化的网站
- 深度网络的设计与可视化工具
- CIFAR-10的Matlab可视化与转化
- 特征选择与评分的可视化显示
- VS2013与QT5 可视化消息与响应槽的添加
- 基于caffe与MATLAB接口的回归分析与可视化
- 在线算法交互、可视化与演示及应用(caffe 网络配置文件 .prototxt 的可视化)
- Tenosrflow的可视化和中间变量的存储与恢复
- 8.数据的可视化-绘制简单的线与点
- Vector的初始化与遍历
- Oracle千万条记录的测试
- TortoiseSVN 1.6.X 与 Netbeans 6.5.1 Subversion Plug-in 兼容问题
- 摄影教程:ISO值.光圈.快门的关系和运用
- 阿拉伯数字金额转换为中文汉字金额(补全)
- 以顺时针、逆时针和回字形显示矩阵
- 多叉树的可视化与遍历
- 会员制营销”和“EMAIL营销”培训方案
- 利用 Google AJAX Feed API 跨域读取 RSS
- innerHTML和outerHTML、innerText与outerTex
- C++与Java在一些语言特性上的异同
- 博学和专一的一点小启示
- JAVA中转义字符
- 浅谈投影矩阵
- fedora中静态IP设置