Advertisement
MaksNew

Untitled

Feb 18th, 2021
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.69 KB | None | 0 0
  1. type
  2.   SinglyLinkedList = class
  3.   private
  4.   type PNode = ^Node;   { указатель на узел }
  5.      Node = record    { структура узла }
  6.        element: integer; { элемент }
  7.        next: PNode;      { ссылка на следующий }
  8.      end;
  9.   var Head: PNode;
  10.   public
  11.     procedure PushBack(Element: Integer);
  12.   end;
  13.  
  14. var
  15.   FormAddElement: TFormAddElement;
  16.   Count: Integer = 1;
  17.  
  18. implementation
  19. procedure SinglyLinkedList.PushBack(Element: Integer);
  20. var
  21.     NewNode: PNode;
  22. begin
  23.     if (Head = nil) then
  24.     begin
  25.         Head.element := Element;
  26.         Head.next := nil
  27.     end
  28.     else
  29.     begin
  30.         New(NewNode);
  31.         NewNode := head;
  32.         while (NewNode.next <> nil ) do
  33.             NewNode := NewNode.next;
  34.         NewNode.element := Element;
  35.         NewNode.next := nil;
  36.     end;
  37. end;
  38.  
  39. {$R *.dfm}
  40.  
  41. function IsElementCorrect(EditAdd:TEdit):Boolean;
  42. var
  43.     IsCorrect: Boolean;
  44. begin
  45.     IsCorrect := True;
  46.     Try
  47.         StrToInt(EditAdd.Text)
  48.     Except
  49.         IsCorrect := False;
  50.         ShowMessage('sosi');
  51.     End;
  52.     IsElementCorrect := IsCorrect;
  53. end;
  54.  
  55.  
  56. procedure TFormAddElement.ButtonOKClick(Sender: TObject);
  57. var
  58.     List: SinglyLinkedList;
  59.     Element: Integer;
  60. begin
  61.     if IsElementCorrect(EditAdd) then
  62.     begin
  63.         Element := StrToInt(EditAdd.Text);
  64.         ListForm.StringGrid1.Cells[1,count] := EditAdd.Text;
  65.         ListForm.StringGrid1.Cells[0,count] := IntToStr(Count);
  66.         ListForm.StringGrid1.RowCount := ListForm.StringGrid1.RowCount + 1;
  67.         List.PushBack(Element);
  68.         Inc(Count);
  69.         EditAdd.Text := '';
  70.         FormAddElement.Close;
  71.     end;
  72. end;
  73.  
  74. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement