1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda: Inserção num índice específico dum heap

Discussão em 'Programação' iniciada por Ang3ls, 19 de Outubro de 2008. (Respostas: 0; Visualizações: 534)

  1. Ang3ls

    Ang3ls Power Member

    Tenho de fazer o método estático:

    public static int heapChangeValue(int []v, int len, int ix, int newValue)

    que, dado o amontoado binário representado pelo array v com dimensão len, altera o valor da posição de índice ix para o valor newValue. Este método deve reorganizar o array de forma a que este continue a representar um amontoado binário.


    Faltei à aula em que demos isto, e estive a tentar-me pôr a par da matéria pelo livro...
    A minha questão é que, pelo que eu entendo do enunciado o objectivo é inserir um elemento no índice ix, e reorganizar o array mas tendo em conta que o newValue vai permanecer no indíce ix do array. Garantindo assim que o único elemento que não vai mudar de posição vai ser o elemento newValue que se encontra no índice ix. Os restantes terão ou não de mudar para que permaneça um amontoado binário.

    Mas já me disseram que só interessa colocar o elemento naquele índice inicialmente e depois reorganizar o array de forma a continuar um amontoado binário, não interessando assim a posição final onde irá ficar o newValue. Estando só a substituir um valor pelo outro, e de seguida reorganizando... se for desta forma o algoritmo em si parece-me acessível, especialmente por ter disponíveis exemplos e exercícios tanto nos apontamentos, como na net... mas da 1ª forma parece-me mais complicado...

    É possível inserir um elemento num determinado índice do array, e garantir que permanece nesse índice após reorganizar o array num heap?! Ou pode sempre acontecer, dependendo do elemento, de não se conseguir um heap? Visto que se quiser inserir num heap um elemento maior do que o 1º elemento, no índice 2, depois de reordenar se mantiver o elemento no índice 2, não dará para reorganizar de forma a ter um heap...

    E não estou a ver que inteiro é que o método irá retornar... :confused:

    Podem dar-me a vossa interpretação em relação ao objectivo do método e em relação à melhor forma de realizar o exercício?
     

Partilhar esta Página