How do you reproduce this composed image with tikz?

Using TiKz pic definition and matrix library. Only two rows are shown.

For white circles, give numbers as 1,2,3,...

For grayed circles, give numbers as 11,22,33,...

\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{%
pics/circs/.style args={#1-#2-#3-#4-#5-#6}{%
    code={%
    \pgfmathparse{#1}
    \ifnum\pgfmathresult<10
    \node at (0,0) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#1){#1}; 
    \else
    \pgfmathtruncatemacro{\a}{round(#1/10)}
    \node at (0,0) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#1){\a};
    \fi
    \pgfmathparse{#2}
    \ifnum\pgfmathresult<10
    \node at (-1,-1) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#2){#2};
    \else
    \pgfmathtruncatemacro{\a}{round(#2/10)}
    \node at (-1,-1) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#2){\a};
    \fi
    \pgfmathparse{#3}
    \ifnum\pgfmathresult<10
    \node at (1,-1) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#3){#3};
    \else
    \pgfmathtruncatemacro{\a}{round(#3/10)}
    \node at (1,-1) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#3){\a};
    \fi
    \pgfmathparse{#4}
    \ifnum\pgfmathresult<10
    \node at (-1.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#4){#4};
    \else
    \pgfmathtruncatemacro{\a}{round(#4/10)}
    \node at (-1.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#4){\a};
    \fi
    \pgfmathparse{#5}
    \ifnum\pgfmathresult<10  
    \node at (-0.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#5){#5};  
    \else
    \pgfmathtruncatemacro{\a}{round(#5/10-1)}
    \node at (-0.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#5){\a}; 
    \fi
    \pgfmathparse{#6}
    \ifnum\pgfmathresult<10   
    \node at (0.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=white](#6){#6};
    \else
    \pgfmathtruncatemacro{\a}{round(#6/10-1)}
    \node at (0.5,-1.5) [draw,circle,minimum size=0.5cm,inner sep=1pt,fill=gray!30](#6){\a};
    \fi
    \draw (#1.220)--(#2.50);
    \draw (#1.-40)--(#3.130);
    \draw (#2.220)--(#4.50);
    \draw (#2.-40)--(#5.130);
    \draw (#3.220)--(#6.50);  
    }
    }
    }

\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of nodes,column  sep=5mm,row  sep=3mm, ] {%First Row
   \node[left=3mm]{Exchange $(A[1],\,A[6])$};   
   \pic {circs={4-3-5-2-1-6}};
   \draw[->]([xshift=5mm] 5.0)--++(0:1.5);& 
   \node[left=10mm]{\textit{Heapsize:=Heapsize-1}};   
   \pic {circs={4-3-5-2-1-66}};
   \draw[->]([xshift=5mm] 5.0)--++(0:1.5);&
   \node[left=3mm]{Heapify (A,1)};       
   \pic {circs={5-3-4-2-1-66}}; \\
 %Second Row  
   \node[left=3mm]{Exchange $(A[1],\,A[5])$};   
   \pic {circs={1-3-4-2-5-66}};
   \draw[->]([xshift=5mm] 4.0)--++(0:1.5);& 
   \node[left=10mm]{\textit{Heapsize:=Heapsize-1}};   
   \pic {circs={1-3-4-2-55-66}};
   \draw[->]([xshift=5mm] 4.0)--++(0:1.5);&
   \node[left=3mm]{Heapify (A,1)};       
   \pic {circs={4-3-1-2-55-66}}; \\
   };

\end{tikzpicture}

\end{document}

enter image description here


You can use the tricks from this answer: a \subnode does not seem to interfere with the forest magic, so you can use it to label nodes which can then be used in an overlay picture.

\documentclass{article}
\usepackage[linguistics]{forest}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{tabular}{cp{1cm}cp{1cm}c}
\begin{forest}
  [
    4 
    [3
        [2]
        [1]
    ]
    [\subnode{pft1}{5}
        [6]
    ]
  ]
\end{forest}
& &
\begin{forest}
    [
    4 
        [\subnode{pft2}{3}
            [2]
            [1]
        ]
        [5
            [6]
        ]
    ]
\end{forest}
& &
\begin{forest}
    [
    5 
        [3
            [2]
            [1]
        ]
        [4
            [6]
        ]
    ]
\end{forest}
\\
\begin{forest}
    [
    1 
        [3
            [2]
            [5]
        ]
        [4
            [6]
        ]
    ]
\end{forest}
& &
\begin{forest}
    [
    1 
        [3
            [2]
            [5]
        ]
        [4
            [6]
        ]
    ]
\end{forest}
& &
\begin{forest}
    [
    4 
        [3
            [2]
            [5]
        ]
        [1
            [6]
        ]
    ]
\end{forest}
\\
\end{tabular}%
\begin{tikzpicture}[overlay,remember picture]
\draw[thick,-stealth] (pft1) -- (pft2) node[midway,above]{Heap size\dots};
\end{tikzpicture}
\end{document}

enter image description here