《Delphi 演算法與資料結構》學習與感悟[10]: 雙向鏈表

來源:互聯網
上載者:User
如果在結構中再拿出 4 個位元組的地址空間指向上一個節點, 就成了雙向鏈表了.

本例:


unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Button1: TButton;    Button2: TButton;    procedure FormCreate(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}type  PMyRec = ^MyRec;  MyRec = record    Name: string[8];    Age : Word;    Prev,Next: PMyRec; {上一個與下一個的結構指標}  end;var  CurrentNode: PMyRec;{建立雙向鏈表}procedure TForm1.FormCreate(Sender: TObject);var  PrevNode: PMyRec;  i: Integer;begin  PrevNode := nil;  for i := 65 to 71 do  {建七個節點, 準備用 AA, BB, CC, DD, EE, FF, GG 來指定 MyRec.Name }  begin    New(CurrentNode);    CurrentNode.Name := Chr(i) + Chr(i);    CurrentNode.Age := i;    CurrentNode.Prev := PrevNode;    if Assigned(PrevNode) then PrevNode.Next := CurrentNode;    PrevNode := CurrentNode;  end;  Button1.Caption := '上一個';  Button2.Caption := '下一個';end;{上一個}procedure TForm1.Button1Click(Sender: TObject);begin  if Assigned(CurrentNode.Prev) then  begin    CurrentNode := CurrentNode.Prev;    Text := CurrentNode.Name + #44 + IntToStr(CurrentNode.Age);  end else Text := '這是第一個節點';end;{下一個}procedure TForm1.Button2Click(Sender: TObject);begin  if Assigned(CurrentNode.Next) then  begin    CurrentNode := CurrentNode.Next;    Text := CurrentNode.Name + #44 + IntToStr(CurrentNode.Age);  end else Text := '這是最後一個節點';end;end.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.