使用 LaTeX 标签和不同终止符绘制二叉树

使用 LaTeX 标签和不同终止符绘制二叉树

我根据这里的答案创建了一些代码:使用 LaTeX 标签绘制二叉树

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{graphs,graphdrawing,graphs.standard,arrows.meta}
\usegdlibrary{trees}
\begin{document}
\tikzgraphsset{%
  levels/.store in=\tikzgraphlevel,
  levels=1,
  declare={full_binary_tree}{[
    /utils/exec={
      \edef\treenodes{%
\directlua{%
  function treenodes(l)
    if l == 0 then
      return "/"
    else
      return "/ [layer distance=" .. l*10 .. "]-> {" .. treenodes(l-1) .. ", " .. treenodes(l-1) .. "}"
    end
  end
  tex.print(treenodes(\tikzgraphlevel) .. ";")
}%
      }
    },
    parse/.expand once=\treenodes
  ]}
}
\begin{tikzpicture}
\graph[binary tree layout, grow=down, sibling distance=0pt, significant sep=-5pt, nodes={fill=red, draw=none, circle, inner sep=4pt, outer sep=0pt}, edge={style={very thick}}]{
   full_binary_tree [levels=5];
};
\end{tikzpicture}
\end{document}

编译它lualatex,你会得到这个:

排版图像

问题:有人可以建议对上面的脚本进行编辑,以终止具有垂直省略号(三个垂直点)的节点的树,表示无限回归树向下?

因此,最低行的节点(并且只有最低行)将采用不同的样式,因此它们是省略号而不是红色圆圈。

谢谢。

答案1

在您等待 lua 解决方案时,这里有一个可能性forest

在此处输入图片描述

\documentclass{article}

\usepackage{forest}
\tikzset{mynode/.style={fill=red, circle, minimum size=3.5mm}}

\begin{document}

\begin{forest}
before typesetting nodes={for tree={if n children=0{content={$\vdots$}}{mynode}, edge={very thick, ->}, inner sep=0pt, s sep=3mm, outer sep=0pt}}
  [,repeat=2{append={[,repeat=2{append={[,repeat=2{append={[,repeat=2{append={[,repeat=2{append={[]}}]}}]}}]}}]}}]
\end{forest}

\end{document}

相关内容