3.2 数据结构(TikZ)


除Graphviz外,TikZ也是可以进行数据结构绘图的。以同样的红黑树为例子,用TikZ重新实现一遍。Graphviz的基本模型就是节点和边,这和图算法的两个最基本概念是一样的。而Tikz也是这样,

基本语法

节点,命令语法为:

\node[name=\name] at (\x,\y) {\content};

当然,节点除了name这个属性外,还有填充颜色,字体颜色,形状等样式属性。
,命令语法为:

\draw[->] (\from) -> (\to);

循环语句,语法为:

\foreach \var1/\var2/\var3/... in {data1/data2/data3,...}{
	code...;
}

代码例子

以红黑树为例子,Tikz代码要比graphviz代码简洁很多:

\documentclass[UTF8, a4paper,12pt]{article}
\usepackage{tikz}
\begin{document}
	\begin{tikzpicture}
		\foreach \x/\y/\name in {0/4/0,3/4/4,4/8/5,5/4/6,7/4/8}{
			\node[white,fill=black,shape=circle,name=\name] at (\x,\y) {\name};
		}
		\foreach \x/\y/\name in {2/6/3,6/6/7,1/2/2,8/2/9}{
			\node[white,fill=red,shape=circle,name=\name] at (\x,\y) {\name};
		}
		\foreach \from/\to in {5/3,5/7,3/0,3/4,0/2,5/7,7/6,7/8,8/9} {
			 \draw[->] (\from) -- (\to);
		}
	\end{tikzpicture}
\end{document}

编译效果

在这里插入图片描述
Tikz视觉效果是完全不属于graphviz的。


版权声明:本文为m0_66201040原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。