我想用 TiKZ 绘制一个像这样的堆栈图。
我想知道有没有办法像绘制自动机一样绘制这种自动定位的图表?有什么想法吗?提前谢谢。
答案1
您可以使用该shapes.multipart
库并使用带有部分的节点:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center}]
\node[stack=5] {
\nodepart{two}a
\nodepart{three}b
\nodepart{four}c
\nodepart{five}d
};
\end{tikzpicture}
\end{document}
答案2
以下是使用 drawstack.sty 的示例:
\documentclass{article}
\usepackage{drawstack}
% Use this instead if you don't want colors.
% \usepackage[nocolor]{drawstack}
\begin{document}
% The main feature of the package is to define an environment
% drawstack.
\begin{drawstack}
% Within the environment, draw stack elements with \cell{...}
\cell{First cell}
\cell{Second cell}
\end{drawstack}
\end{document}
示例取自这里你可以在其中找到更复杂的例子,例如:
- 将单元分组到堆栈框架中
- 堆栈和基指针
- 突出显示一些单元格等
答案3
你可以看看抽签堆栈,它提供了一些简单的宏来绘制堆栈(针对执行堆栈量身定制,带有地址、堆栈指针等)。