我正在尝试用 TikZ 绘制 AVL 树,我需要的是:
具有简单圆形节点的二叉树,以及用于子树的可调节高度三角形(或矩形)节点,两者都仅包含单个字符。这是一张图片:
我尝试使用矩形和正多边形,但它们似乎不受纵横比的影响...有没有一种简单的方法可以在 TikZ 中绘制类似的东西?
答案1
使用isosceles triangle
形状和一些手动设置的高度:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[
inner/.style={circle,draw,minimum width=7mm,inner sep=0},
leaf/.style={isosceles triangle,draw,shape border rotate=90,isosceles triangle stretches=true, minimum height=20mm,minimum width=12mm,inner sep=0,yshift={-20mm},font=\tiny},
large leaf/.style={leaf,minimum height=35mm,yshift={-14.5mm}},
level 1/.style={sibling distance=30mm},
level 2/.style={sibling distance=21mm},
level 3/.style={sibling distance=14mm},
]
\node[inner] {T}
[child anchor=north]
child {node[inner] {L}
child {node[large leaf] {}}
child {node[inner] {LR}
child{node[leaf] {}}
child{node[leaf] {}}}}
child {node[large leaf] {L.Allison}};
\end{tikzpicture}
\end{document}
我不知道为什么两个大三角形的顶部顶点相对于它们的兄弟节点的高度不同。