如何指定 tikz-qtree 的左节点和右节点

如何指定 tikz-qtree 的左节点和右节点

我正在使用 绘制二叉树tikz-qtree。在我的二叉树中,子节点的顺序是重要的,所以我需要区分哪条边是左边和右边。在我的示例代码中,我无法区分节点 1 是左边还是右边。有办法指定这个吗?

\documentclass[demo]{article}
\usepackage{tikz,tikz-qtree}
\begin{document}
\begin{figure}[ht]\begin{center}\begin{tikzpicture}[grow'=up]
\Tree [.\node(8){8}; 
       [.\node(5){5}; 
              [.\node(3){3}; 
                 \node(1){1}; ]
                \node(6){6}; ] 
             \node(12){12}; ]
\end{tikzpicture}\end{center}\end{figure}
\end{document}

在此处输入图片描述

答案1

您可以在需要时明确指定边,并指定[draw=none]。我还简化了您的树:除非您有独立的理由引用它们,否则您不需要将每个节点都括在命令中\node。对于这种树,使每个节点具有统一的大小可能会有所帮助,这样兄弟距离就不会变化。您可以通过设置 的最小大小来做到这一点every tree node/.style。我给出了第二棵树来展示如何做到这一点。在一棵树中,您可以将选项添加到{tikzpicture}环境本身,而不是使用\tikzset

\documentclass{article}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}[grow'=up]
\Tree [.8 
        [.5 
            [.3 
                \edge[]; {1}
                \edge[draw=none]; {}  ]
             6  ] 
          12 ]
\begin{scope}[xshift=2in]
\tikzset{every tree node/.style={minimum width=2em}}
\Tree [.8 
        [.5 
            [.3 
                \edge[]; {1}
                \edge[draw=none]; {}  ]
             6  ] 
          12 ]
\end{scope}   
\end{tikzpicture}
\end{document}

代码输出

相关内容