如何用 TiKz 绘制堆栈图?

如何用 TiKz 绘制堆栈图?

我想用 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}

堆栈示例

示例取自这里你可以在其中找到更复杂的例子,例如:

  1. 将单元分组到堆栈框架中
  2. 堆栈和基指针
  3. 突出显示一些单元格等

答案3

你可以看看抽签堆栈,它提供了一些简单的宏来绘制堆栈(针对执行堆栈量身定制,带有地址、堆栈指针等)。

相关内容