Advertisement
ridjis

procedure_liste

Mar 31st, 2014
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //obrisati elemente koji su veci od svog predhodnika, tako da se na kraju dobije lista sa nerastucim(opadajućim) elementima.
  2. PROCEDURE VeciOdPreth(VAR lista : brojevi);
  3. VAR temp, tekuci : brojevi;
  4. BEGIN
  5.   temp := lista;
  6.   WHILE temp^.veza # NIL DO
  7.     IF temp^.veza^.info > temp^.info THEN
  8.       tekuci := temp^.veza;
  9.       temp^.veza := tekuci^.veza;
  10.       DISPOSE(tekuci);
  11.       temp := lista;
  12.     ELSE
  13.       temp := temp^.veza;
  14.     END;
  15.   END;
  16. END VeciOdPreth;
  17. //lista u kojoj ce svaki element da se sastoji od zbira dva susedna elementa u originalnoj listi.
  18. PROCEDURE DvaSusedna(VAR lista,nova:brojevi);
  19. VAR temp:brojevi;
  20.     br:INTEGER;
  21. BEGIN
  22.   nova:=NIL;
  23.   temp:=lista;
  24.   IF temp # NIL THEN
  25.     IF temp^.veza # NIL THEN
  26.       WHILE temp^.veza # NIL DO
  27.         br:=temp^.veza^.info+temp^.info;
  28.         DodajKraj(nova,br);
  29.         temp:=temp^.veza;
  30.       END;
  31.     END;
  32.   END;
  33. END DvaSusedna;
  34. //listu razdvojiti na dve, tako da se dobijene liste sastoje od elemenata na parnim, odnosno neparnim pozicijama.
  35. PROCEDURE DveListe(VAR lista,parni,neparni:brojevi);
  36. VAR temp:brojevi;
  37.     i:INTEGER;
  38. BEGIN
  39.   IF (lista=NIL) THEN
  40.     WriteString('Lista je prazna.');
  41.     WriteLn;
  42.   ELSE
  43.     parni:=NIL;
  44.     neparni:=NIL;
  45.     i:=1;
  46.     temp:=lista;
  47.     WHILE temp # NIL DO
  48.       IF ODD(i) THEN
  49.         DodajKraj(neparni,temp^.info);
  50.         WriteLn;
  51.       ELSE
  52.         DodajKraj(parni,temp^.info);
  53.         WriteLn;
  54.       END;
  55.       INC(i);
  56.       temp:=temp^.veza;
  57.     END;
  58.   END;
  59. END DveListe;
  60. // Napraviti novu listu u kojoj ce elementi biti jednaki zbiru po dva elementa iz originalne. Npr prvi je jednak zbiru prvog i drugog iz
  61. // originalne, drugi je jednak zbiru drugog i treceg itd. Nova lista treba da je iste duzine, tj poslednji elementi su jednaki.
  62. PROCEDURE PlusDva(VAR lista,nova:brojevi);
  63. VAR temp: brojevi;
  64. BEGIN
  65.   nova:=NIL;
  66.   temp:=lista;
  67.   IF temp#NIL THEN
  68.     IF temp^.veza#NIL THEN
  69.       WHILE temp^.veza#NIL DO
  70.     DodajKraj(nova,temp^.info+temp^.veza^.info);
  71.         temp:=temp^.veza;
  72.       END;
  73.       DodajKraj(nova,temp^.info);
  74.     END;
  75.   END;
  76. END PlusDva;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement