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

View File

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