Estou a criar uma classe que permita construir uma árvore de letras e estou mesmo a precisar de um empurrãozinho.
A ideia é regrupar as palavras numa árvore na qual cada arco representa uma letra. Uma palavra seria então representada pelo caminho da raíz até ao nó que contem o valor "fimPalavra". É no array que estou a fazer tudo, não utiliso a Jtree.
Na verdade trata-se de uma maneira comptacta de representar um conjunto de palavras, como um dicionario por exemplo.
O meu problema é quero acrescentar dois métodos ao meu código aqui em baixo. Um metodo para acrecentar uma palavra à árvore e outro para testar se uma determinada palavra já existe na árvore. Se alguém tiver alguma ideia ou indicação por minima que seja, não hesite pois será certamente util.
Aqui vai o meu código:
import java.io.*;
import java.util.*;
public class ArvoreLetra
{
char letra;
boolean fimPalavra;
ArrayList letrasSeguintes;
/* constructor */
ArvoreLetra(char c)
{
letra = c;
fimPalavra = false;
letrasSeguintes = new ArrayList();
}
/* permite modificar a variável fimPalavra
para indicar se uma subArvore corresponde ou não ao fim de uma palavra*/
void setFimPalavra(boolean b)
{
fimPalavra = b;
}
/*testa si a árvore corresponde ao fim de uma palavra, ultima letra*/
boolean isFimDePalavra()
{
return fimPalavra;
}
/* testa se o caractere c é uma das letras a seguir à letra corrente */
boolean contemLetra(char c)
{
for (int i=0; i<letrasSeguintes.size(); i++)
{
ArvoreLetra a = (ArvoreLetra)letrasSeguintes.get(i);
if (a.letra == c) return true;
}
return false;
}
/* retorna a subArvore (letra seguinte) que corresponde ao caractere c */
ALettre getSubArvore(char c)
{
for (int i=0; i<letrasSeguintes.size();i++)
{
ArvoreLetra a = (ArvoreLetra)letrasSeguintes.get(i);
if (a.letra == c) return a;
}
return null;
}
/*void acrescentarPalavra(String palavra)
{
}
boolean contemPalavra(String palavra)
{
}*/
}
Pergunta
araqh
Olá a todos,
Estou a criar uma classe que permita construir uma árvore de letras e estou mesmo a precisar de um empurrãozinho.
A ideia é regrupar as palavras numa árvore na qual cada arco representa uma letra. Uma palavra seria então representada pelo caminho da raíz até ao nó que contem o valor "fimPalavra". É no array que estou a fazer tudo, não utiliso a Jtree.
Na verdade trata-se de uma maneira comptacta de representar um conjunto de palavras, como um dicionario por exemplo.
O meu problema é quero acrescentar dois métodos ao meu código aqui em baixo. Um metodo para acrecentar uma palavra à árvore e outro para testar se uma determinada palavra já existe na árvore. Se alguém tiver alguma ideia ou indicação por minima que seja, não hesite pois será certamente util.
Aqui vai o meu código:
Obrigado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.