⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 此程序演示了数据结构中,有关链表的动态创建,以及与他相关的一些操作
💻 PAS
字号:
{*******************************************************}
{          本单元演示了Delphi中链表的建立               }
{                 宋志伟                                }
{              05-06-14                                 }
{                                                       }
{                                                       }
{*******************************************************}

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Type
  PLinkTb=^TLinkTb;
  TLinkTb=record
    Context:String;
    Next:PLinkTb;
  End;


type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    LinkTbList:TList;
    CurrIndex:Integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  LinkTbList:=TList.Create;
  CurrIndex:=0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  LinkTbList.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
  TmpTb:^TLinkTb;
  Lt:PLinkTb;
begin
  New(TmpTb);
  TmpTb^.Context:=Memo1.Text;
  TmpTb^.Next:=nil;
  if CurrIndex=0 Then
    LinkTbList.Add(TmpTb)
  Else
  begin
    LinkTbList.Add(TmpTb);
    lT:=Pointer(LinkTbList.Items[CurrIndex-1]);
    Lt^.Next:=Pointer(TmpTb);
  End;
  Inc(CurrIndex);
  TmpTb^.Next:=Pointer(LinkTbList.Items[0]);
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
  I:Integer;
  Tt:PLinkTb;
begin
  i:=0;
  Memo1.Lines.Clear;
  if LinkTbList.Count>0 Then
  begin
    Tt:=Pointer(LinkTbList.Items[0]);
    while Tt<>Nil do
    begin
      Memo1.Lines.Add(Tt^.Context);
      Tt:=Tt^.Next;
      Inc(I);
      if I>LinkTbList.Count then
        Break;
    End;
  End;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -