Hi potreboval by som poradit
potreboval by som proceduru ktora
- v LZZ najde prvok s najvacsou a najmensou hodnotou , odstrante ho zo zoznamu
PASCAL.
vdaka.
Pascal
-
- Moderátor
- Príspevky: 15054
- Dátum registrácie: Ut 26. Feb, 2008, 14:00
- Bydlisko: Bratislava/Štúrovo
Re: Pascal
Hm, co tak este pisat tak aby ludia rozumeli... Lebo ja programujem uz peknych par rokov, ale ani nahodou ma nenapada ze co si myslel "LZZ". Linked list ?
Re: Pascal
linearne zretazeny zoznam , sry
PS4 + OPTOMA HD 141X
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit
Re: Pascal
Predpokladam teda, ze je to jednosmerny zoznam. Nieco ako
V tom pripade urobis proceduru na hladanie minima a maxima.
var
z: PVrchol;
Pre min to bude podobne.
Na odstranenie pouzijes nieco taketo:
Nerucim za spravnost je to take priblizne.
Kód: Vybrať všetko
PVrchol = ^TVrchol;
TVrchol = record
Data: Integer;
Next: PVrchol;
end;
var
z: PVrchol;
Kód: Vybrať všetko
function max(z: PVrchol): PVrchol;
var
max, i: PVrchol;
begin
if z = nil then return nil; //viem ze sa to takto nepouziva ale uz si neviem spomenut ako sa to robi
max := z;
i := z.Next;
while i <> nil do
if i.Data > max.Data then
max := i;
i := i.Next;
end;
return max;
end;
Na odstranenie pouzijes nieco taketo:
Kód: Vybrať všetko
procedure delete(z, a: Pvrchol);
var
i, p: PVrchol;
begin
if z = nil or a=nil then return; //nieje co odstranovat
if z = a then
begin
i := z;
z := z.Next;
Dispose(i); //toto tiez len tipujem
end;
i := z;
while (i <> nil) and (i.Next <> a) do
i := i.Next;
end;
if i<>nil then //nasiel sa
begin
p :=i.Next;
i.Next := i.Next.Next;
Dispose(p);
end;
end;