Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit ListUnit;
- interface
- type
- TMyType = string;
- PListPointer = ^TMyList;
- TMyList = record
- Num: TMyType;
- pNext: PListPointer;
- end;
- TListClass = class
- Counter: Integer;
- pCurrent: PListPointer;
- pFirst: PListPointer;
- procedure Add(const Value: TMyType);
- procedure Next;
- function GetValue: TMyType;
- procedure Delete(const Number: Word);
- constructor Create;
- end;
- implementation
- { TStackClass }
- procedure TListClass.Add(const Value: TMyType);
- var
- Temp: PListPointer;
- begin
- New(Temp);
- Temp^.Num := Value;
- Temp^.pNext := pCurrent^.pNext;
- pCurrent^.pNext := Temp;
- Inc(Counter);
- end;
- constructor TListClass.Create;
- var
- Temp: PListPointer;
- begin
- New(Temp);
- Temp^.pNext := Temp;
- pCurrent := Temp;
- pFirst := Temp;
- Counter := 0;
- end;
- procedure TListClass.Delete(const Number: Word);
- var
- Temp, Del: PListPointer;
- i: Integer;
- begin
- i := 0;
- Temp := pFirst;
- while i < Number - 1 do
- begin
- Temp := Temp^.pNext;
- inc(i);
- end;
- Del := Temp^.pNext;
- Temp.pNext := Temp^.pNext^.pNext;
- Dispose(Del);
- Dec(Counter);
- end;
- function TListClass.GetValue: TMyType;
- begin
- GetValue := pCurrent^.Num;
- end;
- procedure TListClass.Next;
- begin
- pCurrent := pCurrent^.pNext;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement