diff --git a/Programmierung2/src/BinaryTree/BinaryBaumList.java b/Programmierung2/src/BinaryTree/BinaryBaumList.java index 4a61904..d3a0061 100644 --- a/Programmierung2/src/BinaryTree/BinaryBaumList.java +++ b/Programmierung2/src/BinaryTree/BinaryBaumList.java @@ -1,10 +1,15 @@ package BinaryTree; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.Queue; + public class BinaryBaumList { Node root; - + + + //----------------------------------------------------------------- private int findTreeHeightRekursiv(Node temp) { - if (temp == null) return -1; @@ -21,7 +26,7 @@ public class BinaryBaumList { return findTreeHeightRekursiv(root); } - + //----------------------------------------------------------------- private void additerativ(int value) { // erzeuge eine neue knote Node newNode = new Node(); @@ -117,7 +122,7 @@ public class BinaryBaumList { } - + //----------------------------------------------------------------- private int findMinRekursiv(Node temp) { if (temp.left == null) @@ -138,9 +143,9 @@ public class BinaryBaumList { return findMinRekursiv(root); // return findMinIterativ(root); } - - + //----------------------------------------------------------------- + //----------------------------------------------------------------- private int findMaxRekursiv(Node temp) { // // Wenn es kein rechtes Kind gibt, ist dies das Maximum if (temp.right == null) @@ -170,4 +175,83 @@ public class BinaryBaumList { return findMaxIterativ(root); } + + //----------------------------------------------------------------- + private void printPreorder(Node temp) {//[root][left][right] + if (temp == null) + return; + System.out.print( temp.value+ " " ); + printPreorder(temp.left); + printPreorder(temp.right); + } + + private void printInorder(Node temp) {//[left][root][right] + if (temp == null) { + return; + } + printInorder(temp.left); + System.out.print(temp.value + " "); + printInorder(temp.right); + + } + + private void printPostoder(Node temp) {//[left][right][root] + if (temp == null) + return; + + printPreorder(temp.left); + printPreorder(temp.right); + System.out.print( temp.value+ " " ); + } + + private void BreadthFirst() { + // Erstelle eine Queue (Warteschlange) vom Typ LinkedList, um die Knoten für die + // Level-Order Traversal zu speichern. + Queue q1 = new LinkedList<>(); + + // Füge den Wurzelknoten des Baums in die Warteschlange ein. + // Dies ist der Startpunkt für die Breadth-First Traversal. + q1.add(root); + + // Solange die Warteschlange nicht leer ist, gibt es noch Knoten zu besuchen. + while (!q1.isEmpty()) { + // Schau dir das erste Element in der Warteschlange an, ohne es zu entfernen. + // Dies gibt dir den aktuellen Knoten, den du verarbeiten willst. + Node temp = q1.peek(); + + // Entferne das Element (den Knoten), das gerade verarbeitet wird, aus der + // Warteschlange. + // Dies verschiebt die Warteschlange und macht den nächsten Knoten zum + // "Front"-Element. + q1.remove(); + + // Gib den Wert des aktuellen Knotens aus, den du gerade bearbeitest. + // Dies ist der eigentliche Schritt, bei dem du die Traversal-Ergebnisse + // ausgibst. + System.out.print(temp.value + " "); + + // Wenn der linke Kindknoten existiert, füge ihn zur Warteschlange hinzu. + // Dies stellt sicher, dass der linke Kindknoten später in der richtigen + // Reihenfolge bearbeitet wird. + if (temp.left != null) + q1.add(temp.left); + + // Wenn der rechte Kindknoten existiert, füge ihn ebenfalls zur Warteschlange + // hinzu. + // Dies stellt sicher, dass der rechte Kindknoten nach dem linken Kindknoten + // bearbeitet wird. + if (temp.right != null) + q1.add(temp.right); + } + } + + + public void printDepth() { + //printPreorder(root); + //printInorder(root); + BreadthFirst(); + } + //----------------------------------------------------------------- + + } diff --git a/Programmierung2/src/BinaryTree/Debugg Für Findhöhe Methode.pdf b/Programmierung2/src/BinaryTree/Debugg Für Findhöhe Methode.pdf new file mode 100644 index 0000000..0be43b7 Binary files /dev/null and b/Programmierung2/src/BinaryTree/Debugg Für Findhöhe Methode.pdf differ diff --git a/Programmierung2/src/BinaryTree/Test.java b/Programmierung2/src/BinaryTree/Test.java index b084a7a..d3635ff 100644 --- a/Programmierung2/src/BinaryTree/Test.java +++ b/Programmierung2/src/BinaryTree/Test.java @@ -8,12 +8,15 @@ public class Test { b1.addElement(6); b1.addElement(3); b1.addElement(9); + b1.addElement(8); + b1.addElement(20); + b1.addElement(25); + - System.out.println(b1.getHeight()); - - - - + System.out.print("[ "); + b1.printDepth(); + System.out.print(" ]"); + } diff --git a/Programmierung2/src/BinaryTree/Tree Data Structure.odt b/Programmierung2/src/BinaryTree/Tree Data Structure.odt index 50c2cca..17b5035 100644 Binary files a/Programmierung2/src/BinaryTree/Tree Data Structure.odt and b/Programmierung2/src/BinaryTree/Tree Data Structure.odt differ diff --git a/Programmierung2/src/JunitTest/Skript Automatisiert testen (1).pdf b/Programmierung2/src/JunitTest/Skript Automatisiert testen (1).pdf new file mode 100644 index 0000000..d55f331 Binary files /dev/null and b/Programmierung2/src/JunitTest/Skript Automatisiert testen (1).pdf differ