Wątek przeniesiony 2016-11-25 01:05 z C/C++ przez furious programming.

Wstawianie klucza do kolejki priorytetowej typu min

0

Witam,
mam problem z zadaniem. Czy mógłby ktoś pomóc? Oto one:
Do kolejki priorytetowej typu min o n elementach będącymi liczbami z przedziału [0..100] dodać nowy klucz, którego wartość też należy do tego przedziału.

0

Pytanie co masz do tej pory?
Zadanie brzmi jakby był dostępny kawałek kodu, natomiast mnie się wydaje, że startujesz od zera. Wtedy trzeba się pobawić w implementację takiej kolejki.
Zwykła lista obiektów może być kolejką. Ba! W linuxie nawet szeregowanie procesów oparte jest na kolejce (stworzonej na tablicach).

Czego dokładnie potrzebujesz? Bo "mam problem z zadaniem, oto ono" nie mówi nic o Twoim problemie ;)
http://4programmers.net/Pomoc/Forum_dyskusyjne/Dlaczego_nikt_nie_odpowiada_w_moim_w%C4%85tku

0

Tablica przekształcona w kolejkę priorytetową typu min:
begin

    procedure MinHeapify(A:array[1..100] of integer,n:integer,i:integer);
    var l,r,k,m, heapsize:integer;
      begin
      l:=2*i;
      r:=2*i+1;
      heapsize:=n;
      if l<=heapsize and  A[l] <A[i]
         then k:=l
         else k:=i;
      if r<=heapsize and A[r]<A[l]
         then k:=r;
      if k<>i
         then  begin
         m:= A[i];
         A[i]:=A[k];
         A[k]:=m;
         MinHeapify(A,n,k);
         end
      end


      var   j: integer;

        for j:=n div 2 downto 1
        do MinHeapify(A,n,i);
0

No to trafiłaś do złego działu, bo ten kod nie jest w c++ ;)
Czyli do napisania masz operację wstawiania, ot co.

1 użytkowników online, w tym zalogowanych: 0, gości: 1