我正在尝试表示 Max Heapify 的图表。我使用了以下设置tikz
\usepackage{tikz}
\tikzset{
heap/.style={
every node/.style={circle,draw},
level 1/.style={sibling distance=80mm},
level 2/.style={sibling distance=50mm},
level 3/.style={sibling distance=30mm},
level 4/.style={sibling distance=20mm}
}
}
对于 tikzpicture,我写了以下内容
\begin{tikzpicture}[heap]
\node {6}
child{node{8}
child{node{9}
child{node{13}} child{node{23}}}
child{node{7}
child{node{1}} child{node{5}}}}
child{node{5}
child{node{12}
child{node{7}} child{node{10}}}
child{node{4}
child{node{4}}}}
;
\end{tikzpicture}
显然,最低级别的两个子节点似乎在输出中合并在一起
我该如何修复这个问题,以便底部的子节点不会合并?
答案1
根节点没有兄弟节点,因此您从根节点下方的第一级开始计数。此处树的最低级别是第 3 级。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\tikzset{
heap/.style={
every node/.style={circle,draw,minimum width=8mm},
level 1/.style={sibling distance=80mm},
level 2/.style={sibling distance=50mm},
level 3/.style={sibling distance=20mm}, % <----- Here's the lowest level of your tree
level 4/.style={sibling distance=10mm}
}
}
\begin{tikzpicture}[heap]
\node {6}
child{node{8}
child{node{9}
child{node{13}} child{node{23}}}
child{node{7}
child{node{1}} child{node{5}}}}
child{node{5}
child{node{12}
child{node{7}} child{node{10}}}
child{node{4}
child{node{4}}}}
;
\end{tikzpicture}
\end{document}