Rudimentäre Breitensuche implementiert
(noch ohne Zeilenumbrüche für die Niveaus)main
parent
c20fe70015
commit
3d9fbcd8bb
|
@ -1,7 +1,12 @@
|
|||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
public class Baum {
|
||||
private Knoten wurzel;
|
||||
|
||||
|
||||
private Queue<Knoten> ll = new LinkedList<Knoten>();
|
||||
private StringBuilder sb;
|
||||
|
||||
public void add(int wert) {
|
||||
if (wurzel == null) {
|
||||
wurzel = new Knoten(wert);
|
||||
|
@ -14,6 +19,19 @@ public class Baum {
|
|||
public void inorder() {
|
||||
wurzel.inorder();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
// Breitensuche
|
||||
if (wurzel == null)
|
||||
return "Baum ist noch leer";
|
||||
|
||||
sb = new StringBuilder();
|
||||
ll.add(wurzel);
|
||||
|
||||
wurzel.breitensuche();
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
// ----------
|
||||
|
||||
|
@ -53,6 +71,20 @@ public class Baum {
|
|||
if (this.rechts != null)
|
||||
this.rechts.inorder();
|
||||
}
|
||||
|
||||
public void breitensuche() {
|
||||
if (links != null)
|
||||
ll.add(this.links);
|
||||
if (rechts != null)
|
||||
ll.add(this.rechts);
|
||||
|
||||
sb.append(ll.poll().wert + " ");
|
||||
|
||||
if (ll.size() == 0)
|
||||
return;
|
||||
|
||||
ll.peek().breitensuche();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@ public class Main {
|
|||
|
||||
b1.add(11);
|
||||
|
||||
b1.inorder();
|
||||
// b1.inorder();
|
||||
|
||||
System.out.println(b1);
|
||||
System.out.println(b1.toString());
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue