ubgrade 13.2
parent
9774c8a91c
commit
bdb5d7334c
|
@ -17,21 +17,49 @@ public class Binärbaum
|
||||||
//Konstruktoren für ein Blatt
|
//Konstruktoren für ein Blatt
|
||||||
|
|
||||||
//Konstruktor für inneren Knoten
|
//Konstruktor für inneren Knoten
|
||||||
|
Node Final;
|
||||||
public void einfügen(int [] Anzahl){
|
public void einfügen(int [] Anzahl){
|
||||||
//alle Nodes werden abgespeichert
|
//alle Nodes werden abgespeichert
|
||||||
ArrayList<Node> l = new ArrayList<Node>();
|
|
||||||
|
ArrayList<Node> m = new ArrayList<Node>();
|
||||||
|
|
||||||
for(int i =0 ; i<Anzahl.length; i++){
|
for(int i =0 ; i<Anzahl.length; i++){
|
||||||
if(Anzahl[i] >= 1){
|
if(Anzahl[i] >= 1){
|
||||||
//Node wird angelegt
|
//Node wird angelegt
|
||||||
Node n = new Node((char)(i + 65), Anzahl[i]) ;
|
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){
|
public int Minimum(ArrayList<Node> l){
|
||||||
int minindex = 0;
|
int minindex = 0;
|
||||||
for(int i = 0; i<l.size(); i++){
|
for(int i = 0; i<l.size(); i++){
|
||||||
|
|
|
@ -9,7 +9,7 @@ public class Test
|
||||||
{
|
{
|
||||||
|
|
||||||
public static void main(){
|
public static void main(){
|
||||||
List text = new List();
|
Binärbaum Ausdrucken = new Binärbaum ();
|
||||||
//legt String mit Inhalt Abrakadabra an
|
//legt String mit Inhalt Abrakadabra an
|
||||||
String Text = "ABRAKADABRA";
|
String Text = "ABRAKADABRA";
|
||||||
//ruft tählen Methode aus List auf
|
//ruft tählen Methode aus List auf
|
||||||
|
@ -18,7 +18,7 @@ public class Test
|
||||||
Binärbaum b = new Binärbaum();
|
Binärbaum b = new Binärbaum();
|
||||||
//fügt die vorhandenen Buchstaben in den binärbaum ein
|
//fügt die vorhandenen Buchstaben in den binärbaum ein
|
||||||
b.einfügen(Anzahl);
|
b.einfügen(Anzahl);
|
||||||
System.out.println(b);
|
b.ausgeben(b.Final, "");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue