📄 btree1.~pas
字号:
unit BTree1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
BinaryTree, StdCtrls, Spin;
type
TForm1 = class(TForm)
add: TButton;
SpinEdit1: TEdit;
Memo1: TMemo;
list2: TButton;
searchresult: TLabel;
search: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure addClick(Sender: TObject);
procedure listClick(Sender: TObject);
procedure searchClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bt:TBintree
end;
TmyTreeItem=class(TBinTreeItem) // the base class has to be overriden !
public
data:integer;
constructor create(i:integer);
function compare(a:TBinTreeItem):Shortint; override; // data
// a < self :-1 a=self :0 a > self :+1
procedure copy(ToA:TBinTreeItem); override; // data
procedure list; override;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
constructor TmyTreeItem.create(i:integer);
begin
inherited create;
data:=i;
end;
// a < self :-1 a=self :0 a > self :+1
function TmyTreeItem.compare(a:TBinTreeItem):Shortint;
begin
if TmyTreeItem(a).data < data then result:=-1
else
if TmyTreeItem(a).data = data then result:=0
else
if TmyTreeItem(a).data > data then result:=1;
end;
procedure TmyTreeItem.copy(ToA:TBinTreeItem);
begin
TmyTreeItem(ToA).data:=data;
end;
procedure TmyTreeItem.list;
begin
form1.memo1.lines.add(inttostr(data));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bt:=TBinTree.create;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
bt.destroy;
end;
procedure TForm1.addClick(Sender: TObject);
var bti:TmyTreeItem;
h:boolean;
begin
bti:=TmyTreeItem.create( strtointdef(SpinEdit1.Text,0));
h:=bt.add(bti);
end;
procedure TForm1.listClick(Sender: TObject);
begin
memo1.clear;
bt.list;
end;
procedure TForm1.searchClick(Sender: TObject);
var bti,j:TmyTreeItem;
begin
bti:=TmyTreeItem.create( strtointdef(SpinEdit1.text,0));
j:=bti;
if bt.Search(j) then searchresult.caption:='Y' else searchresult.caption:='N';
bti.destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -