![Tikz 树和二叉树中单叶的位置](https://linux22.com/image/258946/Tikz%20%E6%A0%91%E5%92%8C%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%AD%E5%8D%95%E5%8F%B6%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我正在构建一个二叉树,如下所示:
\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}
输出 :
下面的代码也可以利用该right
选项来实现这个效果。
\begin{tikzpicture}
\node {root}
child { node {left} }
child { node {right}
child[right] { node {rightmost} }
} ;
\end{tikzpicture}
输出:
请注意,使用第一个选项时,边缘对齐看起来更好。原因是这missing
是一个特定于树的选项,它要求 tikz 表现得“好像有一个兄弟”,因此它不依赖于节点的内容进行对齐。
另一方面,据我了解,这right
是一个传递给节点的选项,它相对于节点的最左边缘而不是中心放置。此选项不会影响树的其余部分,也不会依赖于它,这就是为什么输出不太令人满意的原因。