Dúvida de Heap (Kruskal)

Delphi

21/06/2004

Estou implementando o algoritmo de Kruskal, e para isso preciso montar um heap.

Alguém tem aí o algoritmo de montar o heap?


Gabriela

Gabriela

Curtidas 0

Respostas

Ertai

Ertai

21/06/2004

HeapSort????
para ordenação????


GOSTEI 0
Beppe

Beppe

21/06/2004

Pode ser assim:
var
  MeuMinHeap: array[1..10] of Integer;
  NumItems: Integer;

procedure Troca(var X, Y: Integer);
var
  Temp: Integer;
begin
  Temp := X;
  X := Y;
  Y := Temp;
end;

procedure Insere(Item: Integer);
var
  I: Integer;
begin
  Assert(NumItems < Length(MeuMinHeap));
  Inc(NumItems);
  MeuMinHeap[NumItems] := Item;
  I := NumItems;
  while (I > 1) and (MeuMinHeap[I] < MeuMinHeap[I div 2]) do
  begin
    Troca(MeuMinHeap[I], MeuMinHeap[I div 2]);
    I := I div 2;
  end;
end;


Mas vc vai precisar tb a rotina que remove ítems do min-heap.


GOSTEI 0
POSTAR