jeudi 28 mai 2015

Binärbaum implementieren - Datenstruktur

Guten Tag liebe Leute und Java-Experten.

Ich habe die Aufgabe einen Binärbaum zu implementieren.

Die Datenstruktur ist selbst zu implementieren und es durfen keine bereits vorhandenen Implementierungen
verwendet werden, welche das Problem lösen. Sie können selbst entscheiden, ob Sie das Interface GenericTree oder das Interface CharacterTree implementieren. CharacterTree spezialisiert lediglich GenericTree und soll als Erleichterung dienen. Die Implementierung von GenericTree bietet Ihnen jedoch die Moglichkeit Ihren Umgang mit Generics zu ¨ üben.

Zu implementierende Methoden
a) Höhe des Baums bestimmen.
b) Anzahl gespeicherte Elemente
c) Einfügen eines Wertes
d) Uberprüfen, ob ein Wert vorhanden ist
e) Loschen eines Wertes
f) Rucksetzen des Baumes
g) Ordnungen exportieren

So die Methoden zu implementieren sollte kein Problem für mich sein. Ich scheitere jedoch ganz am Anfang bei der Erzeugung des Binärbaumes. Die Datenstruktur eines Baumes besteht aus Knoten. Jeder Knoten hat max 2 Kanten die weggehen und eine Kante die ankommt (von oben). Die Wurzel hat keine Vorgänger.

So mein Problem ist folgende Klasse:
Java Code:

  1.  
  2. public class TreeFactoryImpl implements TreeFactory {
  3.  
  4. @Override
  5. public GenericTree<Character> generateCharacterTree() {
  6. //Erzeugen (implementieren) Sie hier je nach Wunsch entweder einen GenericTree<Character> oder einen CharacterTree
  7. //return new GenericTreeImpl<Character>();
  8. //return new CharacterTreeImpl();
  9. return null;
  10. }
  11. }




In dieser Klasse muss ich den Baum implementieren. Also einen leeren Baum. Bei den meisten Implementierungen wurden diese beiden Klassen verwendet. Node und BinTree. BinTree erzeugt mir einen Baum mit einer Wurzel welche null ist. Also einen leeren Baum. Danch würde ich mittels add weiter Knoten anbinden und die Methoden implementieren. Aber ich weiß nicht wie ich den Baum in der obigen Klasse implementieren kann, also die Datenstruktur entwickeln. Wie kann ich das realisieren? Wir können uns für eine Klasse, entweder GenericTree oder CharacterTree entscheiden, und die Methoden darin implementieren. Ich würde gerne CharacterTreeImpl implementieren. Aber ich habe keine Ahnung wie ich den Baum erzeugen kann. Kann ich mir diese beiden Klassen irgendwie zur Hilfe nehmen, um den Baum in der obigen Klasse zu implementieren?

Java Code:

  1.  
  2. public class Node {
  3. private Node left;
  4. private double value;
  5. private Node right;
  6. public Node(Node left, double value, Node right) {
  7. this.left = left;
  8. this.value = value;
  9. this.right = right;
  10. }


Java Code:

  1.  
  2. public class BinTree {
  3. private Node root;
  4.  
  5. /** Erzeugt den leeren Baum */
  6. public BinTree() {
  7. root = null;
  8. }



Wir haben auch noch ein Sample bekommen wie das aussieht:

Java Code:

  1.  
  2. public class CharacterTreeSample {
  3. public static void main(String[] args) {
  4. doSomethingStrangeWithCharacters();
  5.  
  6. howtoUseCompareTo();
  7.  
  8. letsUseOurTreeFactory();
  9.  
  10. }
  11.  
  12. public static void letsUseOurTreeFactory() {
  13. TreeFactory factory = new TreeFactoryImpl(); //Hier die eigene Implementierung angeben
  14.  
  15. GenericTree<Character> tree = factory.generateCharacterTree(); //Wir holen uns unsere Tree-Instanz
  16.  
  17. //Baum befüllen
  18. tree.addValue('a');
  19. tree.addValue('b');
  20. tree.addValue('z');
  21. tree.addValue('p');
  22. tree.addValue('k');
  23. tree.addValue('o');



Ich weiß nicht was hier passiert. Aus dem factory hole ich mir den Baum, aber ich weiß nicht wie ich Ihn darin implementieren soll.

Ich hoffe jemand hat einen Ansatz für mich, was ich hier machen kann.

Herzliche Grüße, Babel.


Binärbaum implementieren - Datenstruktur

0 commentaires:

Enregistrer un commentaire