ubgrade 13.2

master
david 2023-02-13 12:55:17 +01:00
parent 9774c8a91c
commit bdb5d7334c
2 changed files with 34 additions and 6 deletions

View File

@ -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++){

View File

@ -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, "");
} }