前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用graphviz绘制二叉树

使用graphviz绘制二叉树

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 10:35:50
1.1K0
发布2019-01-22 10:35:50
举报

Graphviz是开源免费跨平台图形绘制工具,使用其提供的dot语法,可以很方便的用来绘制“图”结构(这里的图可以理解为是数学上或者计算机科学中所说的图),并支持多种格式输出。 ###语法 首先,来简单看一下dot语法。 1. 使用digraph关键字定义有向图,使用->表述节点之间的关系。如: (g是图的名称,a,b,c是三个节点)

代码语言:javascript
复制
digraph g {
  a->b;
  b->c;
  c->a;
}
有向图
有向图
  1. 使用graph关键字定义无向图,使用 – 表述节点之间的关系。如:
代码语言:javascript
复制
graph g {
  a--b;
  b--c;
  c--a;
}
无向图
无向图
  1. 定义属性的格式为: node[attribute1=value1, attribute2=value2],例如: (下图纯属为了演示语法,太难看不是我的错!) 详细的属性设置可以参考官方文档:Node, Edge and Graph Attributes
代码语言:javascript
复制
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命令进行查看。

### 二叉树的绘制 对于二叉树由于有左右子叶的存在,所以我们有时需要绘制一些节点,然后设置其属性为隐藏。比如,有一个节点只有左节点,没有右节点,那么,我们绘制的时候,可以同时绘制左右节点,然后设置有节点的属性为隐藏。 下面给出一个示例:

代码语言:javascript
复制
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];
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年05月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档