\begin{algorithm}
        \caption{D-ary Extract Maximum Element}
        \begin{algorithmic}
        \PROCEDURE{D-HeapExtractMax}{$A$}
            \IF{$A.\text{heap-size} < 1$}
                \STATE \textbf{error} "heap underflow"
            \ENDIF
            \STATE $max = A[1]$
            \STATE $A[1] = A[A.\text{heap-size}]$
            \STATE $A.\text{heap-size} = A.\text{heap-size} - 1$
            \STATE \CALL{D-MaxHeapify}{$A, 1$}
            \RETURN $max$
        \ENDPROCEDURE
        \STATE
        \PROCEDURE{D-MaxHeapify}{$A, i$}
            \STATE $largest = i$
            \FOR{$k = 1$ \TO $d$}
                \STATE $child_k =$ \CALL{D-Child}{$i, k$}
                \IF{$child_k \le A.\text{heap-size}$ \AND $A[child_k] > A[largest]$}
                    \STATE $largest = child_k$
                \ENDIF
            \ENDFOR
            \IF{$i \ne largest$}
                \STATE exchange $A[i]$ with $A[largest]$
                \STATE \CALL{D-MaxHeapify}{$A, largest$}
            \ENDIF
        \ENDPROCEDURE
        \end{algorithmic}
        \end{algorithm}