Pascal

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
Fester182
Používateľ
Používateľ
Príspevky: 1303
Dátum registrácie: Po 05. Nov, 2007, 08:00
Bydlisko: Topoľčany

Pascal

Príspevok od používateľa Fester182 »

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.
PS4 + OPTOMA HD 141X
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: Pascal

Príspevok od používateľa faugusztin »

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 ?
Používateľov profilový obrázok
Fester182
Používateľ
Používateľ
Príspevky: 1303
Dátum registrácie: Po 05. Nov, 2007, 08:00
Bydlisko: Topoľčany

Re: Pascal

Príspevok od používateľa Fester182 »

linearne zretazeny zoznam , sry
PS4 + OPTOMA HD 141X
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: Pascal

Príspevok od používateľa pEpinko »

Predpokladam teda, ze je to jednosmerny zoznam. Nieco ako

Kód: Vybrať všetko

  PVrchol = ^TVrchol;
  TVrchol = record
    Data: Integer;
    Next: PVrchol;
  end;
V tom pripade urobis proceduru na hladanie minima a maxima.

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;
Pre min to bude podobne.

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;
Nerucim za spravnost je to take priblizne.
Používateľov profilový obrázok
Fester182
Používateľ
Používateľ
Príspevky: 1303
Dátum registrácie: Po 05. Nov, 2007, 08:00
Bydlisko: Topoľčany

Re: Pascal

Príspevok od používateľa Fester182 »

vdaka :)
PS4 + OPTOMA HD 141X
Ked ta tlaci topanka, tak ju nevyzuvaj, skus ju rozchodit

Návrat na "Programovanie"