Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.36 KB | None | 0 0
  1. unit ListUnit;
  2.  
  3. interface
  4.  
  5. type
  6.    TMyType = string;
  7.    PListPointer = ^TMyList;
  8.    TMyList = record
  9.       Num: TMyType;
  10.       pNext: PListPointer;
  11.    end;
  12.    TListClass = class
  13.       Counter: Integer;
  14.       pCurrent: PListPointer;
  15.       pFirst: PListPointer;
  16.       procedure Add(const Value: TMyType);
  17.       procedure Next;
  18.       function GetValue: TMyType;
  19.       procedure Delete(const Number: Word);
  20.       constructor Create;
  21.    end;
  22.  
  23. implementation
  24.  
  25. { TStackClass }
  26.  
  27. procedure TListClass.Add(const Value: TMyType);
  28. var
  29.    Temp: PListPointer;
  30. begin
  31.    New(Temp);
  32.    Temp^.Num := Value;
  33.    Temp^.pNext := pCurrent^.pNext;
  34.    pCurrent^.pNext := Temp;
  35.    Inc(Counter);
  36. end;
  37.  
  38. constructor TListClass.Create;
  39. var
  40.    Temp: PListPointer;
  41. begin
  42.    New(Temp);
  43.    Temp^.pNext := Temp;
  44.    pCurrent := Temp;
  45.    pFirst := Temp;
  46.    Counter := 0;
  47. end;
  48.  
  49. procedure TListClass.Delete(const Number: Word);
  50. var
  51.    Temp, Del: PListPointer;
  52.    i: Integer;
  53. begin
  54.    i := 0;
  55.    Temp := pFirst;
  56.    while i < Number - 1 do
  57.    begin
  58.       Temp := Temp^.pNext;
  59.       inc(i);
  60.    end;
  61.    Del := Temp^.pNext;
  62.    Temp.pNext := Temp^.pNext^.pNext;
  63.    Dispose(Del);
  64.    Dec(Counter);
  65. end;
  66.  
  67. function TListClass.GetValue: TMyType;
  68. begin
  69.    GetValue := pCurrent^.Num;
  70. end;
  71.  
  72. procedure TListClass.Next;
  73. begin
  74.    pCurrent := pCurrent^.pNext;
  75. end;
  76.  
  77. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement