如何在 tikz 中绘制带有链接列表的二维数组

如何在 tikz 中绘制带有链接列表的二维数组

我想在 tikz 中绘制一个带有链接列表的二维数组。它看起来应该像这样: 去做

我尝试了一些东西,\matrix但没有成功。我正在使用\documentclass{scrartcl}

有人有想法吗?非常感谢!

答案1

在此处输入图片描述

\documentclass[border=4pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,arrows}

% tex.stackexchange.com/questions/22687/multirow-in-tikz-matrix
\tikzset{
    table nodes/.style={
        draw,
        align=center,
        minimum height=7mm,
        minimum width =7mm,
        text depth=0.5ex,
        text height=2ex
    },      
    table/.style={
        matrix of nodes,
        row sep=-\pgflinewidth,
        column sep=-\pgflinewidth,
        nodes={
            table nodes
          },
        nodes in empty cells
     }
}

\begin{document}
\begin{tikzpicture}
  \matrix[table] (A)
  { |[draw=none]|
        &a&b&c&d&e&f&g&h&i\\
    maxC&5&4&5&5&5&4&2&5&4\\
    maxC& & & & & & & & & \\
  };
  \matrix[table,below=of A-3-2] (B) {c\\g\\};
  \matrix[table,below=of A-3-6] (C) {b\\e\\f\\i\\};
  \matrix[table,below=of A-3-8] (D) {a\\c\\d\\e\\};
  \foreach \s/\t in {8/B,3/C,7/C,10/C,2/D,4/D,5/D,6/D,9/D}
    \draw[-stealth',shorten >=3pt,shorten <=3pt] (A-3-\s.south) -- (\t-1-1.north);
\end{tikzpicture}
\end{document}

相关内容