was neues

master
obaya 2024-08-20 16:08:17 +02:00
parent 6ea3a48474
commit 985ffab864
4 changed files with 124 additions and 66 deletions

View File

@ -3,13 +3,25 @@ package BinaryTree;
public class BinaryBaumList {
Node root;
public void addFirstElement(int value) {
Node node = new Node(); //1. erstelle ein Node
node.value = value; // 2. gib dieser Node ein Value
private int findTreeHeightRekursiv(Node temp) {
System.out.println("Erste Element: " + root.value);
if (temp == null)
return -1;
int left_subTree = findTreeHeightRekursiv(temp.left);
int right_subTree = findTreeHeightRekursiv(temp.right);
if (left_subTree > right_subTree)
return 1 + left_subTree;
return 1 + right_subTree;
}
public int getHeight() {
return findTreeHeightRekursiv(root);
}
private void additerativ(int value) {
// erzeuge eine neue knote
Node newNode = new Node();
@ -43,7 +55,8 @@ public class BinaryBaumList {
else
temp = temp.right;
}
// so wenn ich ganz unten bin, soll ich sehen, ob ich die Knote rechts oder linke einsetzen soll
// so wenn ich ganz unten bin, soll ich sehen, ob ich die Knote rechts oder
// linke einsetzen soll
// Wenn ja, Knote auf der Linke Seite einsetzen
if (value < merker.value)
merker.left = newNode;
@ -53,6 +66,7 @@ public class BinaryBaumList {
}
private void addRekursiv(Node temp, int value) {
// erzeuge eine neue knote
Node newNode = new Node();
// setze in knote einen Wert
@ -103,34 +117,57 @@ public class BinaryBaumList {
}
public void printRoot() {
Node temp = root;
System.out.println("Die Linke Elemente: ");
while(temp != null) {
System.out.print(temp.value + " ");
private int findMinRekursiv(Node temp) {
if (temp.left == null)
return temp.value;
return findMinRekursiv(temp.left);
}
private int findMinIterativ(Node temp) {
while (temp.left != null)
temp = temp.left;
return temp.value;
}
System.out.println();
temp = root;
System.out.println("Die Rechte Elemente: ");
while (temp != null) {
System.out.print(temp.value + " ");
public int findMin() {
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)
return temp.value;
// Rekursiv weiter nach rechts gehen
return findMaxRekursiv(temp.right);
}
private int findMaxIterativ(Node temp) {
while (temp.right != null)
temp = temp.right;
}
return temp.value;
}
// public void preorder() {
// Node temp = root;
// if (temp != null)
// System.out.println(temp.value);
// temp = temp.
// while (temp.left != null || temp.right != null) {
// if (temp.left != null) {
// temp = temp.left;
// System.out.println(temp.value);
// }
// }
// }
public int findMax() {
// Es gibt keine Elemente
if (root == null)
return -1;
// Wenn ja, dann hat root den Max Wert
if (root.right == null)
return root.value;
// return findMaxRekursiv(root);
return findMaxIterativ(root);
}
}

View File

@ -0,0 +1,23 @@
package BinaryTree;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class JuintTeste {
@Test
void test() {
BinaryBaumList b1 = new BinaryBaumList();
b1.addElement(15);
b1.addElement(6);
b1.addElement(3);
b1.addElement(9);
b1.addElement(8);
b1.addElement(20);
b1.addElement(25);
}
}

View File

@ -3,17 +3,15 @@ package BinaryTree;
public class Test {
public static void main(String[] args) {
Node n1 = new Node();
BinaryBaumList b1 = new BinaryBaumList();
b1.addElement(10);
b1.addElement(15);
b1.addElement(6);
b1.addElement(3);
b1.addElement(9);
b1.addElement(20);
b1.addElement(2);
b1.addElement(1);
b1.addElement(5);
b1.addElement(22);
b1.addElement(23);
System.out.println(b1.getHeight());
}