Ahoj,
snažím se vytvořit proceduru, která by mi měla ze spojového seznamu vynechat všechny prvky, které osahují maximální hodnotu z celého seznamu.
Něco jsem napsal, ale procedura mi padá:
type Ukazatel = ^Prvek;
Prvek = record Dalsi: Ukazatel;
Hodnota: integer;
end;
procedure Vynech_nejvetsi;
var Pomocna,Pruchod,Zacatek,Konec: Ukazatel;
Nejvetsi: integer;
begin
while Pomocna <> nil do
Pomocna:= Zacatek;
if Pomocna^.Dalsi^.Hodnota > Pomocna^.Hodnota then Nejvetsi:= Pomocna^.Dalsi^.Hodnota;
while Pomocna <> nil do
Pruchod:= Pomocna^.Dalsi;
if Pomocna^.Hodnota = Nejvetsi then begin
if Konec = Zacatek then
while Pomocna <> nil do begin
dispose(Konec);
Zacatek:= nil;
Konec:= nil;
end
else if Konec <> Zacatek then
while Pomocna <> nil do begin
Pruchod:= Zacatek;
Zacatek:= Zacatek^.Dalsi;
dispose(Pruchod);
Pruchod:= nil;
end
else if Pruchod^.Hodnota = Nejvetsi then begin
Pruchod:= Pomocna^.Dalsi;
Pomocna^.Dalsi:= Pruchod^.Dalsi;
dispose(Pruchod);
end;
end;
end;
Už si nevím rady. Poradil byste mi někdo prosím? Předem moc děkuji.