我想要做的是绘制一棵在每一层上大小加倍的树,所以我认为二叉树是正确的解决方案,截至目前,我有以下代码:
\documentclass[a4paper, 12pt]{article}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing,arrows.meta}
\usegdlibrary{trees}
\begin{document}
\title {
Homework One\\
\large COMP20180-Intro to Operating Systems}
\author{}
\date{\today}
\maketitle
\section{}
\begin{tikzpicture}[>=stealth]
\graph [binary tree layout] {
4 -> {
3 -> {
2 -> {
1 -> {
0, 0
}
}
}
}
};
\end{tikzpicture}
\end{document}
唯一的问题是 tikz 不喜欢绘制最后一个重复的分支。我发现的唯一解决方法是将其更改为其他内容,但这显然对我来说不起作用。
答案1
经过一些测试,我发现 a用作graph
,因此两个节点不可能具有相同的内容,因为它们被解释为同一个节点。node contents
node names
如果要将相同的内容“写入”树的不同节点,则需要为每个节点赋予特定的名称并使用as
选项来分配内容。
这是我的第一次尝试,graphdrawing
所以我可能错了,但这对我有用:
\documentclass[a4paper, 12pt]{article}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing,arrows.meta}
\usegdlibrary{trees}
\begin{document}
\title {
Homework One\\
\large COMP20180-Intro to Operating Systems}
\author{}
\date{\today}
\maketitle
\section{}
\begin{tikzpicture}[>=stealth]
\graph [binary tree layout] {
4 -> 3->2->1->{0,"0right"[as=0]}
};
\end{tikzpicture}
\end{document}