| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- type
- ptree = ^btree;
- btree = record
- key : integer;
- left,right : ptree;
- end;
- Procedure DoWork(tr : ptree);
- begin
- end;{DoWork}
- {-----------------}
- procedure LRootR(var tr : ptree);
- begin
- if tr <> nil then
- begin
- LrootR(tr^.left);
- DoWork(tr);
- LrootR(tr^.right);
- end;
- end;
- procedure RootRL(var tr : ptree);
- begin
- if tr <> nil then begin
- DoWork(tr);
- rootRL(tr^.right);
- rootRL(tr^.left);
- end;
- end;
- procedure RLroot(var tr : ptree);
- begin
- if tr <> nil then begin
- RLroot(tr^.right);
- RLroot(tr^.left);
- DoWork(tr);
- end;
- end;
- function CreateDecTree(num : byte) : ptree;
- var ret : ptree;
- begin
- if num = 0 then begin
- CreateDecTree := nil;
- exit;
- end;
- New(Ret);
- Ret^.key := num;
- Ret^.Left := CreateDecTree(num-1);
- Ret^.Right := CreateDecTree(num-1);
- CreateDecTree := ret;
- end; {CreateIncTree}
- function CreateIncTree(num,max : byte) : ptree;
- var ret : ptree;
- begin
- if num = max+1 then begin
- CreateIncTree := nil;
- exit;
- end;
- New(Ret);
- Ret^.key := num;
- Ret^.Left := CreateIncTree(num+1,max);
- Ret^.Right := CreateIncTree(num+1,max);
- CreateIncTree := ret;
- end; {CreateIncTree}
- Function Search(sk : integer; var pt : ptree): boolean;
- begin
- Search := false;
- if pt^.key=sk then begin
- search := true;
- exit;
- end;
- if pt^.left <> nil then Search:=Search(sk,pt^.left);
- if pt^.right <> nil then Search:=Search(sk,pt^.right);
- end;
|