Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit2;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
- type
- TFormAddElement = class(TForm)
- Label1: TLabel;
- EditAdd: TEdit;
- ButtonOK: TButton;
- procedure ButtonOKClick(Sender: TObject);
- private
- public
- end;
- type
- SinglyLinkedList = class
- private
- type PNode = ^Node; { указатель на узел }
- Node = record { структура узла }
- element: integer; { элемент }
- next: PNode; { ссылка на следующий }
- end;
- var Head: PNode;
- public
- constructor Create();
- procedure PushBack(Element: Integer);
- procedure AddFirst(var Head: PNode; NewNode:PNode);
- end;
- var
- FormAddElement: TFormAddElement;
- Count: Integer = 1;
- implementation
- uses Unit1;
- constructor SinglyLinkedList.Create();
- begin
- new(head);
- Head := nil;
- end;
- procedure SinglyLinkedList.AddFirst(var Head: PNode; NewNode:PNode);
- begin
- New(NewNode);
- NewNode^.next := Head;
- Head := NewNode;
- end;
- procedure SinglyLinkedList.PushBack(Element: Integer);
- var
- NewNode: PNode;
- begin
- if (Head = nil) then
- begin
- AddFirst(Head, NewNode);
- end
- else
- begin
- New(NewNode);
- NewNode := Head;
- while (NewNode^.next <> nil) do
- NewNode := NewNode.next;
- NewNode^.element := Element;
- NewNode^.next := nil;
- end;
- end;
- {$R *.dfm}
- function IsElementCorrect(EditAdd:TEdit):Boolean;
- var
- IsCorrect: Boolean;
- begin
- IsCorrect := True;
- Try
- StrToInt(EditAdd.Text)
- Except
- IsCorrect := False;
- ShowMessage('sosi');
- End;
- IsElementCorrect := IsCorrect;
- end;
- procedure TFormAddElement.ButtonOKClick(Sender: TObject);
- var
- List: SinglyLinkedList;
- Element: Integer;
- begin
- if count = 1 then
- List.Create();
- if IsElementCorrect(EditAdd) then
- begin
- Element := StrToInt(EditAdd.Text);
- ListForm.StringGrid1.Cells[1,count] := EditAdd.Text;
- ListForm.StringGrid1.Cells[0,count] := IntToStr(Count);
- ListForm.StringGrid1.RowCount := ListForm.StringGrid1.RowCount + 1;
- List.PushBack(Element);
- Inc(Count);
- EditAdd.Text := '';
- FormAddElement.Close;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement