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
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 ;)
Dlaczego nikt nie odpowiada w moim wątku?
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.