跪求各位幫忙啊!

icefirelxb 2003-08-20 09:14:13
unit Unit2;

interface

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

type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
head:pnode;
add:PNode;
end;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit5: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure newnode();
end;

var
Form1: TForm1;
S,S1,S3:string;
head:PNode;
prior:PNode;
anext:PNode;
//add:PNode;
implementation

{$R *.dfm}

{procedure TForm1.read();
begin
prior:=head;
while prior.next<>head do prior:=prior.next;
end;}
procedure TForm1.newnode();
begin
new(prior);
new(anext);
prior.ElemValue:=S;
while(edit1.text<>'') do
begin
if prior.ElemValue='' then
begin
//new(prior);
prior.ElemValue:=edit1.text;
Edit5.Text:= Edit5.Text+' '+prior^.ElemValue;
S:=edit1.Text;
S1:=edit1.Text;
head:=prior;
break;
end
else begin
//new(anext);
anext.ElemValue:=edit1.text;
Edit5.Text:= Edit5.Text+' '+anext.ElemValue;
S:=edit1.Text;
S3:=edit1.Text;
prior.next:=anext;
prior:=anext;
end;
break;
end;
prior.next:=head;
edit3.Text:=prior.ElemValue;
edit4.Text:=head.ElemValue;
anext:=head.next;
edit2.Text:=head.next.ElemValue;
dispose(anext);
//read();
end;

procedure TForm1.Button1Click(Sender: TObject);
//初始化
begin
newnode();
end;

procedure TForm1.Button2Click(Sender: TObject);
//插入
var
S2:String;
add:PNode;
begin
new(add);
//read();
while prior.ElemValue<>edit2.text do
begin
prior:=prior.next;
S2:=S2+' '+prior.ElemValue;
end;
add.next:=prior.next;
prior.next:=add;
add.ElemValue :=Edit3.Text;
S2:=S2+' '+edit3.Text;
prior:=add.next;
S2:=S2+' '+prior.ElemValue;
while prior.ElemValue<>S3 do
begin
prior:=prior.next;
S2:=S2+' '+prior.ElemValue;
end;
edit5.text:=S2+' '+S3;
end;

procedure TForm1.Button3Click(Sender: TObject);
//刪除
var
S2:String;
add:PNode;
begin
//read();
while prior.ElemValue<>edit4.text do
begin
S2:=S2+' '+prior.ElemValue;
add:=prior;
prior:=prior.next;
end;
add.next:=prior.next;
prior:=add.next;
while prior.ElemValue<>S3 do
begin
S2:=S2+' '+prior.ElemValue;
prior:=prior.next;
edit3.Text:=prior.ElemValue;
end;
edit5.text:=S2;
end;
end.
...全文
17 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefirelxb 2003-08-21
  • 打赏
  • 举报
回复
當然運行了。Edit5.Text:= Edit5.Text+' '+prior^.ElemValue;。就是在這幾條語句卡住的,到底是我的鏈表根本就沒建好,還是建了之後都鏈表有問題就不知道了。
nhdj 2003-08-21
  • 打赏
  • 举报
回复
狂晕,自己运行一下看看有没有错误,有错的时候再来
icefirelxb 2003-08-21
  • 打赏
  • 举报
回复
就是不知道哪有問題啊?也不知鏈表到底建好沒有?有沒有直接顯示鏈表內容的函數啊?
bluenightsky 2003-08-21
  • 打赏
  • 举报
回复
应该不难啊,哪有问题说说
icefirelxb 2003-08-20
  • 打赏
  • 举报
回复
題目:設計一個雙向鏈表:給出資料結構的定義,並給出插入、刪除的演算法。
雙向鏈表的結構如下:
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
end;
上面的程序是要實現這個簡單的功能,但我怎麼都做不出來,達人們幫我看看問題在哪兒啊.

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧