Binärbaum (Stammbaum) realisieren.


#1
Uns wurde folgender Code gegeben:

Code:
public class BinaryTree<ContentType> {



  /* --------- Anfang der privaten inneren Klasse -------------- */



 

  private class BTNode<CT> {

   

    private CT content;

    private BinaryTree<CT> left, right;



    public BTNode(CT pContent) {

      // Der Knoten hat einen linken und einen rechten Teilbaum, die

      // beide von null verschieden sind. Also hat ein Blatt immer zwei

      // leere Teilbaeume unter sich.

      this.content = pContent;

      left = new BinaryTree<CT>();

      right = new BinaryTree<CT>();

    }

   

  }



  /* ----------- Ende der privaten inneren Klasse -------------- */



  private BTNode<ContentType> node;



 

  public BinaryTree() {

    this.node = null;

  }





  public BinaryTree(ContentType pContent) {

    if (pContent != null) {

      this.node = new BTNode<ContentType>(pContent);

    } else {

      this.node = null;

    }

  }





  public BinaryTree(ContentType pContent, BinaryTree<ContentType> pLeftTree, BinaryTree<ContentType> pRightTree) {

    if (pContent != null) {

      this.node = new BTNode<ContentType>(pContent);

      if (pLeftTree != null) {

        this.node.left = pLeftTree;

      } else {

        this.node.left = new BinaryTree<ContentType>();

      }

      if (pRightTree != null) {

        this.node.right = pRightTree;

      } else {

        this.node.right = new BinaryTree<ContentType>();

      }

    } else {

     // Da der Inhalt null ist, wird ein leerer BinarySearchTree erzeugt.

      this.node = null;

    }

  }



 

  public boolean isEmpty() {

    return this.node == null;

  }





  public void setContent(ContentType pContent) {

    if (pContent != null) {

      if (this.isEmpty()) {

        node = new BTNode<ContentType>(pContent);

        this.node.left = new BinaryTree<ContentType>();

        this.node.right = new BinaryTree<ContentType>();

      }

      this.node.content = pContent;

    }

  }



 

  public ContentType getContent() {

    if (this.isEmpty()) {

      return null;

    } else {

      return this.node.content;

    }

  }





  public void setLeftTree(BinaryTree<ContentType> pTree) {

    if (!this.isEmpty() && pTree != null) {

      this.node.left = pTree;

    }

  }



 

  public void setRightTree(BinaryTree<ContentType> pTree) {

    if (!this.isEmpty() && pTree != null) {

      this.node.right = pTree;

    }

  }





  public BinaryTree<ContentType> getLeftTree() {

    if (!this.isEmpty()) {

      return this.node.left;

    } else {

      return null;

    }

  }



 

  public BinaryTree<ContentType> getRightTree() {

    if (!this.isEmpty()) {

      return this.node.right;

    } else {

      return null;

    }

  }



}
Wir müssen einen Stammbaum von Lisa Simpson erstellen. Die männlichen Vorfahren sollen links, die weiblichen rechts auf den BinärBaum. Einen Konstruktor Simpson mit String Name; habe ich bereits erstellt.

Ich weiß jedoch nicht, wie ich weitermachen sollte...



Hoffe jemand hier kann mir helfen!
 

HonniCilest

Erfahrenes Mitglied
#2
Hinweis: Bitte deinen Code in code=java tags aufführen, das erleichtert die Lesbarkeit.

Mir erschließt sich nicht ganz warum der Autor von dem Code zwischen Node und Tree unterscheidet. Für mich ist das ein unnützes zusätzliches Objekt, aber ok.

Ich weiß jedoch nicht, wie ich weitermachen sollte...
Ganz ehrlich, wir auch nicht. Wo ist denn dein Code abgesehen von dem dir gegebenen?
 

Neue Beiträge