kommentare

master
L 2025-05-03 10:33:48 +02:00
parent a61b239846
commit ac1fa09229
4 changed files with 16 additions and 14 deletions

View File

@ -8,7 +8,6 @@ import java.nio.file.Path;
public class Main public class Main
{ {
public static byte[] nullCharBytes = {(byte)0xFF,(byte)0xFF}; public static byte[] nullCharBytes = {(byte)0xFF,(byte)0xFF};
//public static String nullCharBytesString = "1111111111111111";
public static void test(String text) public static void test(String text)
{ {
Map<Character, Integer> zahlen = Zählen.countEachLetter(text); Map<Character, Integer> zahlen = Zählen.countEachLetter(text);
@ -48,7 +47,7 @@ public class Main
Map<Character, Integer> zahlen = Zählen.countEachLetter("aaaabbc"); Map<Character, Integer> zahlen = Zählen.countEachLetter("aaaabbc");
Node wurzel = Node.erstellen(zahlen); Node wurzel = Node.erstellen(zahlen);
printBaum(wurzel); printBaum(wurzel);
//byteString_to_baum(baum_to_byteString(wurzel));
HashMap<Character, String> codes = new HashMap<Character, String>(); HashMap<Character, String> codes = new HashMap<Character, String>();
if(wurzel.getLeft() == null && wurzel.getRight() == null) if(wurzel.getLeft() == null && wurzel.getRight() == null)
@ -71,11 +70,9 @@ public class Main
public static void test3() public static void test3()
{ {
System.out.println(decodierungInlkBaum(codierungInklBaum("aaaabbc"))); System.out.println(decodierungInlkBaum(codierungInklBaum("aaaabbc")));
} }
public static void printBaum(Node baum) public static void printBaum(Node baum) //gibt den Baum rekurssiv in pre-order aus
{ {
if(baum == null)return; if(baum == null)return;
System.out.println("Buchstabe: " + baum.getBuchstabe() + ", Anzahl: " + baum.getAnzahl()); System.out.println("Buchstabe: " + baum.getBuchstabe() + ", Anzahl: " + baum.getAnzahl());
@ -83,7 +80,7 @@ public class Main
printBaum(baum.getRight()); printBaum(baum.getRight());
} }
public static void codes(String text) public static void codes(String text) //erstellt die codes für jeden einzelnen Buchstaben
{ {
Node wurzel = Node.erstellen(Zählen.countEachLetter(text)); Node wurzel = Node.erstellen(Zählen.countEachLetter(text));
HashMap<Character, String> codes = new HashMap<Character, String>(); HashMap<Character, String> codes = new HashMap<Character, String>();
@ -103,6 +100,8 @@ public class Main
} }
} }
//methode zum generieren der codes für jeden einzelnen Buchstaben
public static void generieren(HashMap<Character, String> codes, Node node, String code) public static void generieren(HashMap<Character, String> codes, Node node, String code)
{ {
if(node == null)return; if(node == null)return;
@ -117,6 +116,7 @@ public class Main
generieren(codes, node.getRight(), code + "1"); generieren(codes, node.getRight(), code + "1");
} }
//generiert die Huffman-Codierung
public static String codierung(String text, Node wurzel) public static String codierung(String text, Node wurzel)
{ {
HashMap<Character, String> codes = new HashMap<Character, String>(); HashMap<Character, String> codes = new HashMap<Character, String>();

View File

@ -14,12 +14,14 @@ public class Node
{ {
} }
public Node(Node left, Node right) public Node(Node left, Node right) //constructor für node
{ {
this.left = left; this.left = left;
this.right = right; this.right = right;
} }
//set und get methoden für verschiedenes
public Node getLeft(){return left;} public Node getLeft(){return left;}
public void setLeft(Node left){this.left = left;} public void setLeft(Node left){this.left = left;}
@ -63,22 +65,22 @@ public class Node
return nodes.poll(); return nodes.poll();
} }
public void add(Node node) public void add(Node node) //fügt ein Kind an die freie Stelle von dem baum hin wenn möglich
{ {
if(left == null) if(left == null) //als erstes überprüft es die linke Seite
{ {
left= node; left= node;
return; return;
} }
if(right == null) if(right == null) //danach überprüft es die linke Seite
{ {
right= node; right= node;
return; return;
} }
} }
public boolean hatPlatzKinder() public boolean hatPlatzKinder() //überprüft ob der baum schon "voll" ist
{ {
return left==null || right==null; return left==null || right==null;
} }

View File

@ -1 +1 @@
aaaabbc aaaabbc

View File

@ -3,7 +3,7 @@ import java.util.Map;
public class Zählen public class Zählen
{ {
public static Map<Character, Integer> countEachLetter(String input) public static Map<Character, Integer> countEachLetter(String input) //erstellt eine Map die jeden character zählt
{ {
// Konvertiere den String in ein char-Array // Konvertiere den String in ein char-Array
char[] characters = input.toCharArray(); char[] characters = input.toCharArray();
@ -21,7 +21,7 @@ public class Zählen
return letterCountMap ; return letterCountMap ;
} }
public static void printZahl (Map<Character, Integer> letterCountMap) public static void printZahl (Map<Character, Integer> letterCountMap) //printed allle characters mit deren anzahl
{ {
for (Map.Entry<Character, Integer> entry : letterCountMap.entrySet()) for (Map.Entry<Character, Integer> entry : letterCountMap.entrySet())
{ {