fala pessoal blz??? estou com um pequeno problema em um projeto da faculdade... temos que fazer um compactador usando Huffman... até essa parte tudo bem... mas então quando vou descompactar dah esse StackOverflowError... procurei no google um tempo... e descobri que esse erro pode ser porque o programa chegou em um nivel de recursividade muito "fundo"... o que causaria esse erro... acredito que realmente possa ser isso... já que para descompactar ele deve descer uma arvore digital binaria varias vezes para encontrar os simbolos corretos... então basicamente a duvida é:
-Será que o erro esta msm sendo causado por essa recursividade???
-Alguem poderia dar alguma sugestão para "consertar" o codigo???
public void grava_chars(ArvoreDigital raiz, ArvoreDigital no, String bin, int pos, FileInputStream in, FileOutputStream out) throws IOException{
if(no.codigo!=-1) {out.write(no.codigo); grava_chars(raiz, raiz, bin, pos, in, out);}
else{
if(pos>=bin.length()) {bin = fill_string(in); pos=0;}
if(bin!=null){
char tmp = bin.charAt(pos);
if(tmp=='0') grava_chars(raiz, no.filho1, bin, pos+1, in, out);
else if(tmp=='1') grava_chars(raiz, no.filho2, bin, pos+1, in, out);
}
}
}
