【LaTeX应用】画个树形结构,二叉树
导
读
LaTeX的功能非常强大,在排版过程中,有时候需要画一些图像辅助,而LaTeX就提供了这个功能。
在tikz下直接绘制树形结构图,在《数据结构》等课程中非常实用,下面是
以二叉树为例,还可以画出多种其他的树形结构,子树的个数可以控制,箭头的方向也可以更改
正
文
下面是实现的主要代码部分,代码中的语法就不一一解释了,语法都很简单,代码直接可以使用
\begin{tikzpicture}[->,>=stealth,level/.style={sibling distance = 5cm/#1, level distance = 1.5cm},
treenode/.style = {align=center, inner sep=0pt, text centered,font=\sffamily},
arnn/.style = {treenode, circle, white, font=\sffamily\bfseries, draw=black, fill=black, text width=1.5em},
arnr/.style = {treenode, circle, red, draw=red, text width=1.5em, very thick},
arnx/.style = {treenode, rectangle, draw=black, minimum width=2em, minimum height=1em}]
\node [arnn] {33}
child{ node [arnr] {15}
child{ node [arnn] {10}
child{ node [arnr] {5} edge from parent node[above left]
{$x$}} %for a named pointer
% child{ node [arnx] {}}
}
child{ node [arnn] {20}
child{ node [arnr] {18}}
child{ node [arnx] {}}
}
}
child{ node [arnr] {47}
child{ node [arnn] {38}
child{ node [arnr] {36}}
child{ node [arnr] {39}}
}
child{ node [arnn] {51}
child{ node [arnr] {49}}
child{ node [arnx] {}}
}
}
;
\end{tikzpicture}
可能还需要在导言区添加的是
\usepackage{tikz}
\usetikzlibrary{chains,scopes,positioning,backgrounds,shapes,fit,shadows,calc,arrows.meta}
\RequirePackage{amsmath,mathrsfs,amsfonts,amssymb}
更多关于树形结构的实现方式,可以参考小编博客中方法,这里不再赘述。