From 2eb372a5d10ec5aea0c8a6ba4c24281971ccffd8 Mon Sep 17 00:00:00 2001 From: L <@> Date: Wed, 9 Apr 2025 11:04:54 +0200 Subject: [PATCH] decodierung problem --- Main.java | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++--- Zählen.java | 8 +++++-- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/Main.java b/Main.java index d38d490..1cda837 100644 --- a/Main.java +++ b/Main.java @@ -3,6 +3,40 @@ import java.util.*; public class Main { + public static void test(String text) + { + Map zahlen = Zählen.countEachLetter(text); + Node wurzel = Node.erstellen(zahlen); + + System.out.println(); + System.out.println("Pre-Order Baum:"); + printBaum(wurzel); + + System.out.println(); + System.out.println("Anzahl der Zeichen:"); + Zählen.printZahl(zahlen); + + System.out.println(); + System.out.println("Binärcode der Zeichen:"); + codes(text); + + System.out.println(); + + decodierungBaum(codierung(text,wurzel), wurzel); + + + } + + public static void printBaum(Node baum) + { + if(baum == null)return; + System.out.println("Buchstabe: " + baum.getBuchstabe() + ", Anzahl: " + baum.getAnzahl()); + printBaum(baum.getLeft()); + printBaum(baum.getRight()); + } + + + public static void codes(String text) { Node wurzel = Node.erstellen(Zählen.countEachLetter(text)); @@ -27,9 +61,8 @@ public class Main generieren(codes, node.getRight(), code + "1"); } - public static void codierung(String text) + public static String codierung(String text, Node wurzel) { - Node wurzel = Node.erstellen(Zählen.countEachLetter(text)); HashMap codes = new HashMap(); if(wurzel.getLeft() == null && wurzel.getRight() == null) @@ -48,9 +81,37 @@ public class Main code += c; } System.out.println("Huffman-Codierung: " + code); + return code; } - //public String decodierung( + public static String decodierungBaum(String code,Node baum) + { + Node current = baum; + String decoded = ""; + + for(int i =0;i letterCountMap) + { for (Map.Entry entry : letterCountMap.entrySet()) { System.out.println("Buchstabe: " + entry.getKey() + ", Anzahl: " + entry.getValue()); } - return letterCountMap ; } }