data
parent
e1934b49f2
commit
6ea3a48474
|
@ -6,75 +6,131 @@ public class BinaryBaumList {
|
||||||
public void addFirstElement(int value) {
|
public void addFirstElement(int value) {
|
||||||
Node node = new Node(); //1. erstelle ein Node
|
Node node = new Node(); //1. erstelle ein Node
|
||||||
node.value = value; // 2. gib dieser Node ein Value
|
node.value = value; // 2. gib dieser Node ein Value
|
||||||
if (root == null)//3. wenn meine Liste leer ist
|
|
||||||
this.root = node;
|
|
||||||
System.out.println("Erste Element: " + root.value);
|
System.out.println("Erste Element: " + root.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HinzufügenVonElementen(int value) {
|
private void additerativ(int value) {
|
||||||
|
// erzeuge eine neue knote
|
||||||
Node newNode = new Node();
|
Node newNode = new Node();
|
||||||
|
// setze in knote einen Wert
|
||||||
newNode.value = value;
|
newNode.value = value;
|
||||||
Node temp = root;
|
// ersetze left Knote auf Null
|
||||||
Node merker = temp;
|
newNode.left = null;
|
||||||
while(temp != null) {
|
// ersetze rechte Knote auf Null
|
||||||
merker = temp;
|
newNode.right = null;
|
||||||
if (value < temp.value)
|
|
||||||
temp = temp.left;
|
|
||||||
|
|
||||||
else
|
|
||||||
temp = temp.right;
|
|
||||||
}
|
|
||||||
if (value < merker.value) {
|
|
||||||
merker.left =newNode;
|
|
||||||
System.out.println("linke neue Knote " + merker.left.value);
|
|
||||||
}else {
|
|
||||||
merker.right =newNode;
|
|
||||||
System.out.println("rechte neue Knote " + root.right.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addElement(int value) {
|
|
||||||
if (root == null)
|
|
||||||
addFirstElement(value);
|
|
||||||
else
|
|
||||||
HinzufügenVonElementen(value);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void addstatic(int value) {
|
|
||||||
Node newNode = new Node();
|
|
||||||
newNode.value = value;
|
|
||||||
// wenn meine Liste leer ist
|
// wenn meine Liste leer ist
|
||||||
if (root == null) {
|
if (root == null) {
|
||||||
this.root = newNode;
|
this.root = newNode;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Wenn sie nicht leer!
|
||||||
|
|
||||||
//wenn ja, dann soll ich nur die linke Knoten des Baumes betrachte
|
// temp root, um einfacher zu suchen
|
||||||
Node temp = root;
|
Node temp = root;
|
||||||
if (newNode.value < root.value) {
|
// da mein Temp bis null Knote läuft,
|
||||||
root.left = newNode;
|
// speichere ich seinen vorhängieren Wert
|
||||||
System.out.println("linke seite " + root.left.value);
|
Node merker = temp;
|
||||||
|
while(temp != null) {
|
||||||
|
// speichere temp vorhängieren Wert
|
||||||
|
merker = temp;
|
||||||
|
// wenn soll ich die linke Seite betrachten
|
||||||
|
if (value < temp.value)
|
||||||
|
temp = temp.left;
|
||||||
|
|
||||||
|
// wenn nein soll ich die rechte Seite betrachten
|
||||||
|
else
|
||||||
|
temp = temp.right;
|
||||||
|
}
|
||||||
|
// 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;
|
||||||
|
// Wenn nein, Knote auf der rechte Seite einsetzen
|
||||||
|
else
|
||||||
|
merker.right =newNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addRekursiv(Node temp, int value) {
|
||||||
|
// erzeuge eine neue knote
|
||||||
|
Node newNode = new Node();
|
||||||
|
// setze in knote einen Wert
|
||||||
|
newNode.value = value;
|
||||||
|
// ersetze left Knote auf Null
|
||||||
|
newNode.left = null;
|
||||||
|
// ersetze rechte Knote auf Null
|
||||||
|
newNode.right = null;
|
||||||
|
// falls die Liste leer ist!
|
||||||
|
if (temp == null) {
|
||||||
|
root = newNode;
|
||||||
|
System.out.println("Die Root: " + root.value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Wenn ja die Linke Seite betrachten
|
||||||
|
if (value < temp.value) {
|
||||||
|
// Wenn mein temp die die Knote null erreicht
|
||||||
|
if (temp.left == null) {
|
||||||
|
// erstze die Knote
|
||||||
|
temp.left = newNode;
|
||||||
|
System.out.println("Linke Knote: " +temp.left.value);
|
||||||
|
}
|
||||||
|
// wenn mein Temp die Knote null nicht erreicht hat
|
||||||
else {
|
else {
|
||||||
root.right = newNode;
|
// laufe weiter
|
||||||
System.out.println("rechte seite " + root.right.value);
|
addRekursiv(temp.left, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// wenn die Value größer als die Root
|
||||||
|
// also die rechte Seite betrachten
|
||||||
|
else {
|
||||||
|
if (temp.right == null) {
|
||||||
|
// erstze die Knote
|
||||||
|
temp.right = newNode;
|
||||||
|
System.out.println("Rechte Knote: " +temp.right.value);
|
||||||
|
|
||||||
// public void printRoot() {
|
} else {
|
||||||
|
//laufe Weiter
|
||||||
|
addRekursiv(temp.right, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addElement(int value) {
|
||||||
|
//additerativ(value);
|
||||||
|
addRekursiv(root,value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printRoot() {
|
||||||
|
Node temp = root;
|
||||||
|
System.out.println("Die Linke Elemente: ");
|
||||||
|
|
||||||
|
while(temp != null) {
|
||||||
|
System.out.print(temp.value + " ");
|
||||||
|
temp =temp.left;
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
temp = root;
|
||||||
|
System.out.println("Die Rechte Elemente: ");
|
||||||
|
while (temp != null) {
|
||||||
|
System.out.print(temp.value + " ");
|
||||||
|
temp = temp.right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// public void preorder() {
|
||||||
// Node temp = root;
|
// Node temp = root;
|
||||||
// Node left = root.left;
|
// if (temp != null)
|
||||||
// Node right = root.right;
|
// System.out.println(temp.value);
|
||||||
//
|
// temp = temp.
|
||||||
// while(temp != null || left != null || right != null)
|
// while (temp.left != null || temp.right != null) {
|
||||||
// System.out.println("Value: " + this.root.value);
|
// if (temp.left != null) {
|
||||||
|
// temp = temp.left;
|
||||||
|
// System.out.println(temp.value);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,14 +6,18 @@ public class Test {
|
||||||
Node n1 = new Node();
|
Node n1 = new Node();
|
||||||
BinaryBaumList b1 = new BinaryBaumList();
|
BinaryBaumList b1 = new BinaryBaumList();
|
||||||
|
|
||||||
b1.addFirstElement(10);
|
b1.addElement(10);
|
||||||
b1.addElement(7);
|
b1.addElement(9);
|
||||||
b1.addElement(20);
|
b1.addElement(20);
|
||||||
b1.addElement(-2);
|
|
||||||
b1.addElement(2);
|
b1.addElement(2);
|
||||||
b1.addElement(1);
|
b1.addElement(1);
|
||||||
|
b1.addElement(5);
|
||||||
|
b1.addElement(22);
|
||||||
|
b1.addElement(23);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// b1.printRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue