Akaleaf

stacklink

Nov 14th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.39 KB | None | 0 0
  1. program StackList;
  2.  
  3. type
  4.   TpStackElement = ^TStackElement;
  5.   TStackElement = record
  6.     info : integer;
  7.     previous : TpStackElement;
  8.   end;
  9.  
  10. var
  11.   pStackPointer : TpStackElement;
  12.   pTemp : ^TStackElement;
  13.   answer : char;
  14.   element : integer;
  15.  
  16. procedure push(pushMethodElement : integer);
  17. begin
  18.   new(pTemp);
  19.   pTemp^.info := pushMethodElement;
  20.   pTemp^.previous := pStackPointer;
  21.   pStackPointer := pTemp;
  22. end;
  23.  
  24. procedure pop();
  25. begin
  26.   if (pTemp <> nil) then
  27.   begin
  28.     pTemp := pStackPointer;
  29.     //dispose(pStackPointer);
  30.     pStackPointer := pStackPointer^.previous;
  31.     dispose(pTemp);
  32.   end;
  33. end;
  34.  
  35. procedure output();
  36. begin
  37.   pTemp := pStackPointer;
  38.   while (pTemp <> nil) do
  39.   begin
  40.     write(pTemp^.info, ' ');
  41.     pTemp := pTemp^.previous;
  42.   end;
  43. end;
  44.  
  45. begin
  46.   pStackPointer := nil;
  47.  
  48.   repeat
  49.  
  50.     writeln('1. Add element');
  51.     writeln('2. Remove element');
  52.     writeln('3. Output');
  53.     writeln('4. Dispose');
  54.     readln(answer);
  55.     case answer of
  56.     '1':
  57.       begin
  58.         write('Enter the new element to add: ');
  59.         readln(element);
  60.         push(element);
  61.       end;
  62.     '2':
  63.       begin
  64.         pop();
  65.         writeln;
  66.       end;
  67.     '3':
  68.       begin
  69.         writeln;
  70.         output();
  71.         writeln;
  72.       end;
  73.     '4': dispose(pStackPointer);
  74.     end;
  75.     //writeln(pTemp^.info);
  76.  
  77.   until (answer = 'n');
  78.  
  79. end.
Advertisement
Add Comment
Please, Sign In to add comment