homeSoftwaredesign Softwaredesign: Beispiel: Tiefes Kopieren eines binären Baumes Prof. Dr. Uwe Schmidt FH Wedel

Beispiel: Tiefes Kopieren eines binären Baumes

weiter

weiter

die Schnittstelle: BinTree

abstract
public
class BinTree {
  // ...
 
  abstract
  public
  BinTree copy();
}
weiter

weiter

die Klasse für den leeren Baum: EmptyTree

public
class EmptyTree extends BinTree {
 
  // Singleton Erzeugungsmuster
  // da keine Daten in der Klasse sind
  // gibt es nur einen einzigen Wert von dieser Klasse
  // --> Fliegengewicht
 
  public
  static
  BinTree empty = new EmptyTree();
 
  private
  EmptyTree() {}
 
  // ...
 
  public
  BinTree copy() {
    return
      this;
  }
}
 
weiter

weiter

die Klasse für echte Knoten: Node

public
class Node extends BinTree {
 
  protected
  OrderedObject info;
 
  protected
  BinTree left;
 
  protected
  BinTree right;
 
  public
  Node(OrderedObject info) {
    this.info  = info;
    this.left  = EmptyTree.empty;
    this.right = EmptyTree.empty;
  }
 
  // ...
 
  public
  BinTree copy() {
    Node res = new Node(info)// <--- ???
 
    res.left  = left.copy();
    res.right = right.copy();
 
    return res;
  }
}
weiter

Letzte Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel