Thema: Delphi Marge Binar Tree

Einzelnen Beitrag anzeigen

Benutzerbild von sk.Silvia
sk.Silvia

Registriert seit: 8. Feb 2006
Ort: Slovenia
90 Beiträge
 
Delphi 7 Personal
 
#1

Marge Binar Tree

  Alt 14. Apr 2006, 13:59
hi there i have a problem :

so i have two tree structures New (has value 77 in left upper corner) and BinTree (is the large tree) are declared as standard tree
Delphi-Quellcode:
type TBinTree=class
      Value:integer;
      Left,Right: TBinTree;
      constructor Create(New_Value:integer; New_Left, New_Right:TBinTree); Overload;
      constructor PowerCreate(Node:TBinTree); Overload;
      ...
      end;

  constructor TBinTree.Create(New_Value:integer; New_Left, New_Right:TBinTree);
      begin
      Value:=New_Value;
      Left:=New_Left;
      Right:=New_Right;
      end;

  constructor TBinTree.PowerCreate(Node:TBinTree);
      begin
      Self:=Node;
      end;
und ich mochte jetzt den ganzen rechten teil (.Right) von BinTree Baum mit Value=1 in den rechten teil von New baum tree stecken (2)) und dann diesen grossen New in den rechten teil (.Right) von BinTree mit Value=1 stecken, alzo eine neue node mit value=77 zwichen value=1 und value=2 erstelen, und dann will ich aber frei mit dem New tree arbeiten (wenn ich zumbeispiel New andere, mochte ich net das auch die node in BinTree geendert wird), weiss aber nich wie ich es machen soll sodas ich nicht die adresse von New in := aber eine neue node erstelle

Delphi-Quellcode:
  
procedure TEngine.Insert;
var X:TBinTree;
      begin
      X:=TBinTree.PowerCreate(NewNode);
      X.Right:=TBinTree.PowerCreate(BinTree.IsOverParentLine(Selected).Right); //BinTree.IsOverParentLine(Selected)=> Value=1
      BinTree.IsOverParentLine(Selected).Right:=TBinTree.PowerCreate(X); //ako precerpat celu nodu aj s pamatov
      end;
das geht aber nich denn immer bleibt die New node mit der node in BinTree verbunden

http://www.kolaudacia.sk/bintree.gif
  Mit Zitat antworten Zitat