使用graphviz绘制二叉树

来源:互联网 发布:淘宝网游戏道具 编辑:程序博客网 时间:2024/06/05 09:34
Graphviz是开源免费跨平台图形绘制工具,使用其提供的dot语法,可以很方便的用来绘制“图”结构(这里的图可以理解为是数学上或者计算机科学中所说的图),并支持多种格式输出。###语法首先,来简单看一下dot语法。1. 使用digraph关键字定义有向图,使用->表述节点之间的关系。如:(g是图的名称,a,b,c是三个节点)
digraph g {  a->b;  b->c;  c->a;}
有向图
  1. 使用graph关键字定义无向图,使用 – 表述节点之间的关系。如:
graph g {  a--b;  b--c;  c--a;}
无向图
  1. 定义属性的格式为: node[attribute1=value1, attribute2=value2],例如:
    (下图纯属为了演示语法,太难看不是我的错!)
    详细的属性设置可以参考官方文档:Node, Edge and Graph Attributes
graph g {  a--b[color=cyan];  b--c[style=dotted];  c--a[color=indigo];  a[shape=oval, label="A", color=green];  b[shape=rect, label="B", color=blue];  c[shape=circle, label="C", style=filled, fillcolor=cyan];}
自定义属性

我们可以使用:
dot -Tpdf tree.dot -o tree.pdf 输出为PDF文档,
也可以使用:
dot -Tpng tree.dot -o tree.png输出为PNG图片,
具体可使用dot –help命令进行查看。

### 二叉树的绘制对于二叉树由于有左右子叶的存在,所以我们有时需要绘制一些节点,然后设置其属性为隐藏。比如,有一个节点只有左节点,没有右节点,那么,我们绘制的时候,可以同时绘制左右节点,然后设置有节点的属性为隐藏。下面给出一个示例:
graph g {  A--B;  A--C;  B--D;  B--NULL[style=invis];   A[shape=circle, label="root"];  B[shape=circle, label="left child"];  C[shape=circle, label="right child"];  D[shape=circle, label="left grandchild"];  NULL[style=invis];}
二叉树
0 0
原创粉丝点击