Tikz 树和二叉树中单叶的位置

Tikz 树和二叉树中单叶的位置

我正在构建一个二叉树,如下所示:

\begin{tikzpicture}
\node {root}
    child {  node {left}   }
    child {  node {right}
                    child { node {rightmost} }
             }  ;
\end{tikzpicture}

截屏

如果是单个子节点,就像“最右边”的情况一样,边缘只是指向下方。我想影响单个边缘和节点的位置,使它们倾斜,就像它们有一个兄弟节点一样:

截屏

我该如何做呢?

答案1

一种方法是使用选项missing。考虑到您想要实现的目标:“就像有一个兄弟姐妹一样”,这种方法可能是最自然的。

\begin{tikzpicture}
\node {root}
    child {  node {left}   }
    child {  node {right}
                    child[missing] {node {}}
                    child { node {rightmost} }
             }  ;
\end{tikzpicture}

输出 :

输出2

下面的代码也可以利用该right选项来实现这个效果。

\begin{tikzpicture}
\node {root}
    child {  node {left}   }
    child {  node {right}
                    child[right] { node {rightmost} }
             }  ;
\end{tikzpicture}

输出:

输出

请注意,使用第一个选项时,边缘对齐看起来更好。原因是这missing是一个特定于树的选项,它要求 tikz 表现得“好像有一个兄弟”,因此它不依赖于节点的内容进行对齐。

另一方面,据我了解,这right是一个传递给节点的选项,它相对于节​​点的最左边缘而不是中心放置。此选项不会影响树的其余部分,也不会依赖于它,这就是为什么输出不太令人满意的原因。

相关内容