用类实现链表
来源:互联网 发布:湖州市公务员网络学堂 编辑:程序博客网 时间:2024/05/17 11:34
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TCmdBuffer = class
public
Cmd, ParaData: string;
Next: TCmdBuffer;
procedure add(cmd,ParaData:string);
procedure Delete(cmd:string);
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Memo1: TMemo;
Button7: TButton;
Button8: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button9: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ Private declarations }
CmdBuffer: TCmdBuffer;
procedure Send(Cmd, ParaData: string);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TCmdBuffer.add(cmd,paradata:string);
var p,a:TCmdBuffer;
begin
P:=TCmdBuffer.Create;
a:= TCmdBuffer.Create;
//if p.Cmd='' then p:=nil;
p.Cmd:=cmd;
p.ParaData:=paradata;
p.Next:=nil;
a:=Next;
p.Next:=a;
Next:=p;
end;
procedure TCmdBuffer.delete(cmd:string );
var p,a, a1,d1:TCmdBuffer;
Find:Boolean;
begin
Find:=False;
P := TCmdBuffer.Create;
a := TCmdBuffer.Create;
a1:= TCmdBuffer.Create;
d1:= TCmdBuffer.Create;
a1:=nil;
a:=Next;
while a<>nil do
begin
d1:= TCmdBuffer.Create;
p.Cmd :=a.Cmd;
p.ParaData :=a.ParaData;
p.Next :=nil;
if (a.Cmd=cmd) and Not Find then
begin
Find:=True;
a:=a.Next;
continue;
end;
if a1=nil then
begin
System.move(p,a1,Sizeof(p));
System.move(d1,p,Sizeof(d1));
a:=a.Next;
continue;
end;
System.move(a1,p.Next,Sizeof(a1));
System.move(p,a1,Sizeof(p));
System.move(d1,p,Sizeof(d1));
a:=a.Next;
end;
Next:=a1;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
CmdBuffer:=TCmdBuffer.Create;
//CmdBuffer:=nil;
end;
procedure TForm1.Button5Click(Sender: TObject);
var p,q:TCmdBuffer;
s:TStringlist;
begin
s:=TStringlist.Create;
p:= TCmdBuffer.Create;
q:= TCmdBuffer.Create;
//p:=nil;
CmdBuffer.add('aaa',' aaa');
CmdBuffer.add('bbb',' bbb');
CmdBuffer.add('ccc',' ccc');
CmdBuffer.add('ddd',' ddd');
CmdBuffer.add('eee',' eee');
q:=CmdBuffer;
while q<>nil do
begin
//showmessage(q.Cmd+q.ParaData);
q:=q.Next;;
end ;
end;
procedure TForm1.Button6Click(Sender: TObject);
var p:TCmdBuffer;
s:TStringlist;
begin
CmdBuffer.Delete('ddd');
end;
procedure TForm1.Button7Click(Sender: TObject);
var p,q:TCmdBuffer;
s:TStringlist;
begin
q:=CmdBuffer;
while q<>nil do
begin
memo1.Lines.Add(q.Cmd+q.ParaData);
q:=q.Next;;
end ;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
CmdBuffer.add(edit1.Text,edit2.Text);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
CmdBuffer.Delete(edit1.Text );
end;
end.
- 用类实现链表
- 用数组实现链表
- 用数组实现链表
- 用python实现链表
- 类实现线性链表
- 类模板 实现链表
- 链表操作实现类
- c++类实现链表
- 类模板 实现链表
- 用Java实现栈(Stack)之链表实现
- 二叉树实现类 —— 三叉链表实现
- AVL树实现类——二叉链表实现
- Java栈实现:数组实现和链表实现
- C++实现队列--数组实现和链表实现
- C++实现队列--数组实现和链表实现
- 队列的实现--链表实现
- Josephus排列-红黑树实现-链表实现
- 实现循环链表(js实现)
- linux下vi中批量删除空行的方法:
- SAS9.1.3安装过程中反复出现重启动挂起的解决方案
- 关于数据表映射在更新时候出现的一些问题
- 求字符串最长对称字符串的长度(转何海涛博客)
- HTTP与HTTPS的区别
- 用类实现链表
- Linux 软件安装使用(7)根目录的简介
- Enterprise Services Bus ---1 Overview & Introduction
- Jquery实现回车键Enter切换焦点
- 一对一关系映射
- Enterprise Services Bus ---2 The State of Integration
- 猴子与渔夫
- sudo 和su的区别?
- 鹰与屎壳郎