1. Considere max-heaps ternários, isto é, com até 3 filhos por nó, ao invés de 2. Continuamos tendo o máximo em A[1], mas agora os filhos de A[1] serão A[2], A[3] e A[4]; os filhos de A[2] serão A[5], A[6] e A[7]; e assim por diante. Sua tarefa será programar a operação Max-Heapify. Lembrando a operação abaixo para max-heaps binários, escreva um procedimento análogo para max-heaps ternários.

    Não esqueça de redefinir funções análogas às dos heaps binários para obter os índices dos filhos e pai de cada índice. Lembre-se que temos agora três filhos: Left, Middle e Right, além do Parent. Para ajudar, eis as funções para heaps binários:

    Left(i) = \(2i\)
    Right(i) = \(2i+1\)
    Parent(i) = \(\lfloor i/2 \rfloor\)

    Solução:

    Left(i) = \(3i - 1\)
    Middle(i) = \(3i\)
    Right(i) = \(3i + 1\)
    Parent(i) = \(\lfloor (i+1)/3 \rfloor\)