如何将垂直树与左上角对齐?

如何将垂直树与左上角对齐?

如何将垂直树对齐到顶部?

这是我现在的树:我想要得到这棵树:
                
^ 这是我现在的树的一部分

我正在尝试创建一个图表来说明 的路径算法O(N!)。为了便于阅读,我仅显示顶部节点的后代,所有下部节点都应以叉子/耙子状对象作为后缀。

我希望得到一个能显示正确解决方案的答案,以及对所用代码的解释。

我的相关代码:

\documentclass[12pt,a4paper]{article}
\usepackage{tikz-qtree,tikz-qtree-compat}
\begin{document}
\begin{tikzpicture}
\tikzset{grow'=right,level distance=50pt}
\tikzset{execute at begin node=\strut}
\tikzset{every tree node/.style={align=left,anchor=base west}}
\Tree [.\node(root){E};
           [.A \node(x){R};
               [.D ]
               [.U ]
               [.T ]
           ]
           [.R ]
           [.D ]
           [.U ]
           [.T ]
      ]
      [.R ]
      [.D ]
      [.U ]
      [.T ]
]
\draw[->](x)..controls +(north west:1.5) .. (root);
\end{tikzpicture}
\end{document}

答案1

也许树并不是实现您想要实现的目标的正确方法。此示例使用矩阵以所需的方式放置节点。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
  \begin{tikzpicture}[>=stealth]
    \matrix[matrix of nodes,column sep=2em,row sep=1em] (tree) {
      E & A & R & D & U & T \\
        & R & D & U & T &   \\
        & D & U & T &   &   \\
        & U & T &   &   &   \\
        & T &   &   &   &   \\
    };
    \foreach \n in {1,2,3,4,5} {\path (tree-1-1) edge (tree-\n-2);};
    \foreach \n in {1,2,3,4} {\path (tree-1-2) edge (tree-\n-3);};
    \foreach \n in {1,2,3} {\path (tree-1-3) edge (tree-\n-4);};
    \foreach \n in {1,2} {\path (tree-1-4) edge (tree-\n-5);};
    \path (tree-1-5) edge (tree-1-6);
    \path (tree-1-6) edge[->,bend right=15] (tree-1-1);
  \end{tikzpicture}
\end{document}

语法并不像输入树那么舒服,但结果就是你想要的。


在此处输入图片描述

相关内容