unit Unit2;interfaceuses
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.
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.
解决方案 »
- 串口通信程序在笔记本上正常,台式机就不行,为什么?
- 求助 copy 或者copyfiles [文件复制问题]
- 请问我在RichEdit控件中实现:双击其中一行字符,就让这行字符的背景色变为红色,并取到这行字符或行号也行,该如何做啊?
- 在Delphi 中(通过存储过程)插入含有西文双引号的字符串,如何处理?
- 如何建个通用的打印平台
- 想问一下一些常见词的标准统一的翻译,如数据在保存前需要检查必填项目是否已填写,我称为完整性检查,你们呢
- delphi中设置窗体只显示某一种特定颜色
- 请高手帮我解释CREATE FORM的问题,好吗?
- 请问如何备份一个文件夹中的所有文件到另一个文件夹中去?
- 在grid里面有总金额这字段
- 怎么由程序构建报表-------->FastReport ReportMachine
- 关于远程监控。。。。。
雙向鏈表的結構如下:
type
PNode=^TNode;
TNode=Record
ElemValue:string;
prior:PNode;
next:PNode;
end;
上面的程序是要實現這個簡單的功能,但我怎麼都做不出來,達人們幫我看看問題在哪兒啊.