我需要创建一个 4 级深二叉树,目前我有:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}[binary tree layout]
\node{a}
child{node{b}
child{node{d}
child{node{h}}
child{node{i}}
}
child{node{e}
child{node{j}}
child{node{k}}
}
}
child{node{c}
child{node{f}
child{node{l}}
child{node{m}}
}
child{node{g}
child{node{n}}
child{node{o}}
}
};
\end{tikzpicture}
\end{document}
但在 Overleaf 上编译时,有些节点相互重叠(i 和 j)(m 和 n)。而且它根本不是二叉树 x)
我也尝试添加:
\begin{tikzpicture}[binary tree layout]
但我们仍然有一个关于 c 节点的问题
答案1
b
您的节点和节点之间有一个空白行c
,这让解析器感到困惑。删除它就可以得到您想要的树。但您可能想考虑改用forest
for 树,因为输入语法(带标签的括号)要简单得多。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\usepackage{forest}
\begin{document}
\begin{tikzpicture}[binary tree layout]
\node{a}
child{node{b}
child{node{d}
child{node{h}}
child{node{i}}
}
child{node{e}
child{node{j}}
child{node{k}}
}
}
child{node{c}
child{node{f}
child{node{l}}
child{node{m}}
}
child{node{g}
child{node{n}}
child{node{o}}
}
};
\end{tikzpicture}
\begin{forest}
[a [b [d [h] [i]] [e [j] [k] ]][c [f [l] [m]][g [n][o]]]]
\end{forest}
\end{document}