在 Tikz Trees 中实现同名的唯一节点?

在 Tikz Trees 中实现同名的唯一节点?

我正在尝试制作一个方案表达式的二叉树表示。但是,我注意到我无法重复单词“cons”作为唯一节点。树将简单地将第二个 cons 的所有后续节点与第一个 cons 联系起来。我在这里将它们命名为 con 和 cons 以显示我希望它如何出现,而不命名其余部分,以避免显示当我这样做时发生的灾难。

\documentclass{article}
\newcommand\tab[1][1cm]{\hspace*{#1}}
\usepackage{fancyhdr}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[margin=1.0in]{geometry}
\usepackage{courier}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing,arrows.meta}
\usegdlibrary{trees}
\pagestyle{fancy}
\usepackage{amsmath}

\begin{document}
\begin{center}
\begin{tikzpicture}[>=Stealth]
\graph[binary tree layout]{
  con -- {   
    1 ,
   cons -- {
      l -- {
        m -- { n, o },
        p -- { q, r }
      }, 
      s -- {
        v -- {w, x},
        y -- {z}
      }
    }
  }
};
\end{tikzpicture}
\end{center}
\end{document}

二叉树

答案1

我不确定哪些节点应该包含cons哪些节点不应该包含,所以我把它们全部都做了cons以防万一。每个唯一的节点都需要一个唯一的名称。但节点的内容不需要是唯一的。

许多缺点

\RequirePackage{luatex85}
\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{courier}
\usetikzlibrary{graphs,graphdrawing,arrows.meta}
\usegdlibrary{trees}

\begin{document}
\begin{tikzpicture}[>=Stealth]
\graph[binary tree layout]{
  con/"cons" -- {
    1/"cons" ,
   cons -- {
      l/"cons" -- {
        m/"cons" -- { n/"cons", o/"cons" },
        p/"cons" -- { q/"cons", r /"cons"}
      },
      s/"cons" -- {
        v/"cons" -- {w/"cons", x/"cons"},
        y/"cons" -- {z/"cons"}
      }
    }
  }
};
\end{tikzpicture}
\end{document}

相关内容