ubgrade 27 2

master
david 2023-02-27 12:54:39 +01:00
parent bdb5d7334c
commit 442f28e8d7
3 changed files with 37 additions and 1 deletions

View File

@ -42,7 +42,9 @@ public class Binärbaum
m.remove(Minimum);
int Minimum2 = Minimum(m);
//ermittelt das Minimum für die Festlegung des linken Knotens
Node n2 = m.get(Minimum2);
//entfernt das aktuelle Minimum
m.remove(Minimum2);
Node neu = new Node(' ', n1.Anzahl + n2.Anzahl);
neu.links = n1;
@ -53,14 +55,45 @@ public class Binärbaum
}
public void ausgeben(Node n, String i){
if(n.links != null){
//gibt Weertee aus und erstellt dabei Binärcode
ausgeben(n.links, i + "0");
ausgeben(n.rechts, i + "1");
}else{
System.out.println(n.wert + " : " + i+ " Anzahl:" + n.Anzahl);
}
n.Binärcode = i;
}
}
public void codieren(String text){
for(int i = 0; i<text.length(); i++){
char Buchstabe = text.charAt(i);
Node n = Suche(Buchstabe, Final);
System.out.print(n.Binärcode);
}
}
public Node Suche(char ü, Node u){
//sucht Node mit gesuchtem Buchstaben im Binärbaum
if(u.wert == ü){
return u;
}
else{
//sucht im linken Teil des Baums
if(u.links != null ){
if(Suche(ü, u.links)!= null){
return Suche(ü, u.links);
}
}
//sucht im rechten Teil des Baumes
if(u.rechts != null){
if(Suche(ü, u.rechts) != null){
return Suche(ü, u.rechts);
}
}
}
return null;
}
public int Minimum(ArrayList<Node> l){
//setzt temporäres Minimum auf der ersten Stelle der ArrayList
int minindex = 0;
for(int i = 0; i<l.size(); i++){
//Vergleich Anfangsminimum und aktuellem Arraywert

View File

@ -12,6 +12,7 @@ public class Node
public Node rechts;
public Node links;
public int Anzahl;
public String Binärcode;
//Konstruktor
public Node(char w, int a){
wert = w;
@ -22,6 +23,7 @@ public class Node
links = l;
}
//Konstruktor rechter Knoten
public void setRechts(Node r){
rechts = r;

View File

@ -19,6 +19,7 @@ public class Test
//fügt die vorhandenen Buchstaben in den binärbaum ein
b.einfügen(Anzahl);
b.ausgeben(b.Final, "");
b.codieren(Text);
}