ubgrade 13.2
parent
9774c8a91c
commit
bdb5d7334c
|
@ -17,21 +17,49 @@ public class Binärbaum
|
|||
//Konstruktoren für ein Blatt
|
||||
|
||||
//Konstruktor für inneren Knoten
|
||||
|
||||
Node Final;
|
||||
public void einfügen(int [] Anzahl){
|
||||
//alle Nodes werden abgespeichert
|
||||
ArrayList<Node> l = new ArrayList<Node>();
|
||||
|
||||
ArrayList<Node> m = new ArrayList<Node>();
|
||||
|
||||
for(int i =0 ; i<Anzahl.length; i++){
|
||||
if(Anzahl[i] >= 1){
|
||||
//Node wird angelegt
|
||||
Node n = new Node((char)(i + 65), Anzahl[i]) ;
|
||||
|
||||
l.add(n);
|
||||
m.add(n);
|
||||
}
|
||||
}
|
||||
//Sortieren von den Werten mit Selection Sort
|
||||
//Sortieren von den Werten
|
||||
|
||||
while(m.size() > 1){
|
||||
//Minimum finden
|
||||
int Minimum = Minimum(m);
|
||||
//ermittelt das Minimum für die Festlegung des rechten Knotens
|
||||
Node n1 = m.get(Minimum);
|
||||
//entfernt das aktuelle Minimum
|
||||
m.remove(Minimum);
|
||||
|
||||
int Minimum2 = Minimum(m);
|
||||
Node n2 = m.get(Minimum2);
|
||||
m.remove(Minimum2);
|
||||
Node neu = new Node(' ', n1.Anzahl + n2.Anzahl);
|
||||
neu.links = n1;
|
||||
neu.rechts= n2;
|
||||
m.add(neu);
|
||||
}
|
||||
Final = m.get(0);
|
||||
}
|
||||
public void ausgeben(Node n, String i){
|
||||
if(n.links != null){
|
||||
ausgeben(n.links, i + "0");
|
||||
ausgeben(n.rechts, i + "1");
|
||||
}else{
|
||||
System.out.println(n.wert + " : " + i+ " Anzahl:" + n.Anzahl);
|
||||
}
|
||||
}
|
||||
|
||||
public int Minimum(ArrayList<Node> l){
|
||||
int minindex = 0;
|
||||
for(int i = 0; i<l.size(); i++){
|
||||
|
|
|
@ -9,7 +9,7 @@ public class Test
|
|||
{
|
||||
|
||||
public static void main(){
|
||||
List text = new List();
|
||||
Binärbaum Ausdrucken = new Binärbaum ();
|
||||
//legt String mit Inhalt Abrakadabra an
|
||||
String Text = "ABRAKADABRA";
|
||||
//ruft tählen Methode aus List auf
|
||||
|
@ -18,7 +18,7 @@ public class Test
|
|||
Binärbaum b = new Binärbaum();
|
||||
//fügt die vorhandenen Buchstaben in den binärbaum ein
|
||||
b.einfügen(Anzahl);
|
||||
System.out.println(b);
|
||||
b.ausgeben(b.Final, "");
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue