Advertisement
pseudocreator

listaGranicnikPonavljanje

Oct 26th, 2014
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODULE listaGranicnik;
  2. FROM IO IMPORT WrInt, WrLn, RdInt, WrStr;
  3. FROM Storage IMPORT ALLOCATE, DEALLOCATE;
  4. FROM InOut IMPORT ReadInt;
  5.  
  6. TYPE
  7.    InfoTip = INTEGER;
  8.    Lista = POINTER TO Element;
  9.    Element = RECORD
  10.                 veza : Lista;
  11.                 kinfo : InfoTip
  12.              END;
  13.  
  14. VAR
  15.    t, s, l : Lista;
  16.    i, k, j : INTEGER;
  17.  
  18. PROCEDURE MakeList(VAR s: Lista);
  19. BEGIN
  20.      NEW(s);
  21.      s^.veza := s;
  22. END MakeList;
  23.  
  24. PROCEDURE Empty(s: Lista): BOOLEAN;
  25. BEGIN
  26.      RETURN s = s^.veza
  27. END Empty;
  28.  
  29. PROCEDURE Isprazni(VAR s: Lista);
  30. VAR
  31.    temp : Lista;
  32. BEGIN
  33.      WHILE s # s^.veza DO
  34.           temp := s^.veza;
  35.           s^.veza := s^.veza^.veza;
  36.           DISPOSE(temp)
  37.      END
  38. END Isprazni;
  39.  
  40. PROCEDURE Ispis(s: INTEGER); FORWARD;
  41. PROCEDURE Stampaj(s: Lista);
  42. VAR
  43.    temp : Lista;
  44. BEGIN
  45.      IF NOT Empty(s) THEN
  46.        WrStr("Ispis liste: "); WrLn();
  47.        temp := s^.veza;
  48.        WHILE temp # s DO
  49.             Ispis(temp^.kinfo);
  50.             temp := temp^.veza
  51.        END
  52.      ELSE
  53.          WrStr("Lista je prazna "); WrLn;
  54.      END
  55. END Stampaj;
  56.  
  57. PROCEDURE Ispis(x: INTEGER);
  58. BEGIN
  59.      WrInt(x,0);
  60.      WrLn()
  61. END Ispis;
  62.  
  63. PROCEDURE DodajPocetak(VAR s: Lista; x: InfoTip);
  64. VAR
  65.    novi: Lista;
  66. BEGIN
  67.  
  68.      NEW(novi);
  69.      novi^.kinfo := x;
  70.      novi^.veza := s^.veza;
  71.      s^.veza := novi
  72.  
  73. END DodajPocetak;
  74.  
  75. PROCEDURE Unesi(VAR s: Lista;rb: INTEGER);
  76. VAR
  77.    br : INTEGER;
  78. BEGIN
  79.      WrStr("Unesite "); WrInt(rb,0); WrStr(". : ");
  80.      ReadInt(br);
  81.      DodajPocetak(s, br);
  82. END Unesi;
  83.  
  84.  
  85. BEGIN
  86.      MakeList(t);
  87.      FOR i := 1 TO 3 DO
  88.          Unesi(t,i)
  89.      END;
  90.      Stampaj(t);
  91.      Isprazni(t);
  92.      WrStr("Brisanje liste! ");
  93.  
  94.      Stampaj(t);
  95.  
  96. END listaGranicnik.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement