Hey zusammen,
habe schon wieder ein Problem mit Java
und zwar handelt es sich bei meinem Projekt um eine Huffman-Kodierung.
Ich scheitere jedoch an der Methode die aus meinem bestehendem Baum einzelne Buchstaben codieren soll.
Hier der Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
public void sucheBuchstabe(char c)
{
weg = "";
found = false;
Knoten k = new Knoten();
k.setzeBuchstabe(c);
Knoten aktuell = (Knoten)items.get(0);
sucheChild(k, aktuell);
System.out.println(weg);
}
private void sucheChild(Knoten searched, Knoten aktuell)
{
if(searched.gibBuchstabe() != aktuell.gibBuchstabe())
{
if(aktuell.gibLinks() != null)
{
weg += "0";
sucheChild(searched, aktuell.gibLinks());
}
if(aktuell.gibRechts() != null)
{
weg += "1";
sucheChild(searched, aktuell.gibRechts());
}
}
if(searched.gibBuchstabe() == aktuell.gibBuchstabe())
{
found = true;
}
if(found == false)
{
weg = weg.substring( 0, weg.length() - 1 );
}
}
|
der Baum wird schon vollständig aufgebaut (BSP."TEST")
Wurzel - T
........\ ................/ S
......... Knoten Nix
.......................... \.. E
aufgerufen wird bei mir T S und dann E mit der methode.
anstatt: 1 01 00
kommt bei mir
1
0011
011
raus oO
hoffe ihr könnt mir helfen
lg SD
EDIT: items.get(0) fügt natürlich die Wurzel in aktuell ein.