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.
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
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);
No to trafiłaś do złego działu, bo ten kod nie jest w c++ ;)
Czyli do napisania masz operację wstawiania, ot co.