vlambda博客
学习文章列表

【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}

更多关于树形结构的实现方式,可以参考小编博客中方法,这里不再赘述。