您的位置 首页 > 数码极客

如何画一个平衡二叉树

写文章的过程中,我发现自己画的二叉树简直太丑了。最近几天我研究了一下如何优雅的画好一颗二叉树。先放几个图大家欣赏一下,希望大家与我交流更好的画图方法。

图1 优雅画图法画二叉树


图2 优雅画图法画二叉树


图3 优雅画图法画二叉树


图4 优雅画图法画二叉树

现在开始,给大家推介一款可视化图形软件Graphviz。Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。图形可视化是一种将结构信息表示为抽象图形和网络图的方式。它在网络,生物信息学,软件工程,数据库和网页设计,机器学习以及其他技术领域的可视界面中具有重要的应用。

Graphviz 的输入是一个用 dot 语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。

dot 语言是一种绘图语言,它可以方便你采用图形的方式快速、直观地表达一些想法,比如描述某个问题的解决方案,构思一个程序的流程,澄清一堆貌似散乱无章的事物之间的联系……等等。总之,当你打算使用铅笔在纸上乱画一些圈圈框框并用一些带箭头的线将它们联系起来的时候,不妨考虑一下使用 dot 来完成这个工作。

如何下载和安装Graphviz?

Graphviz的官方网址:

我用的win64,所以下载了图5这个安装包。

图5 安装包路径示意图

安装成功后,需要设置环境变量,能看到我这边文章的我默认你会了。

在命令行里边输出dot -v 测试一下是否安装成功,图6结果,表示安装成功。

图6 成功安装了Graphviz

用任何文本编辑器,编写dot语言的脚本,如图7,在cmd中执行之后,就可以得到你想要的图片了。(关注后私信我直接直接获得源代码)

图7 dot语言脚本文件和生成的图

cmd命令行中的命令如图8:

图8 命令行内容

图8中的-Tpng表示生成png图片,-Tpdf表示生成PDF文件。

我们试一下,看一下图9的二叉树的脚本语言如何编写

图9 如何编写脚本言语


graph test {//graph表示无向图 c node [shape=circle color=tan style=filled fontcolor=black]; F -- C; //隐藏中间节点的连线 F -- m1[weight= 10 style="invis"]; F -- E; C -- A; //隐藏中间节点的连线 C -- m2[weight = 10 style="invis"]; C -- D; E -- H; //隐藏中间节点的连线 E -- m3[weight = 10 style="invis"]; E -- G; D -- m4[weight= 10 style="invis"]; //隐藏中间节点的连线 D -- m5[weight= 10 style="invis"]; D -- B; H --I; //隐藏中间节点的连线 H -- m6[weight= 10 style="invis"]; H -- m7[weight= 10 style="invis"]; G -- M; //隐藏中间节点的连线 G -- m8[weight= 10 style="invis"]; G -- m9[weight= 10 style="invis"]; //隐藏中间节点 m1,m2,m3,m4,m5,m6,m7,m8,m9[lable="" style="invis"] }


研究到这里满足了我的小需求,快速画出一个优雅的二叉树。Graphviz的功能很强大,值得研究一下。

这段时间写的关于数据结构二叉树的作品如下:

二叉树遍历的思维导图

二叉树的层序遍历及应用

二叉查找树(BST:Binary Search Tree)

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何画一个平衡二叉树”边界阅读