Estou a fazer um trabalho em que peço ao utilizador para escrever um texto.
Depois pego nas palavras desse texto e insiro cada uma delas numa árvore binária e a cada nó da árvore está associado uma string e um contador (no case de haver palavras repetidas)
O inserir já está.
Mas o meu professor pede para procurarmos por palavras, ou seja, o utilizador escreve uma palavra ou um bocado dela e todas as palavras na árvore que começarem por esse bocado têm de ser imprimidas.
Até agora eu tenho assim:
Se tiver na árvore as palavras "casa", "casamento", só é imprimida a primeira palavra e não sei porquê. Alguém me pode ajudar?
void procura( String x ) {
if(x.length()==0) {
listarPosOrdem(raiz); // se o utilizar não introduzir nada, imprimo todas as palavras da árvore, funciona.
return;
}
No actual = raiz;
if(actual==null){
System.out.println("palavra não encontrada");
return;
Pergunta
Nelson Andrade
Estou a fazer um trabalho em que peço ao utilizador para escrever um texto.
Depois pego nas palavras desse texto e insiro cada uma delas numa árvore binária e a cada nó da árvore está associado uma string e um contador (no case de haver palavras repetidas)
O inserir já está.
Mas o meu professor pede para procurarmos por palavras, ou seja, o utilizador escreve uma palavra ou um bocado dela e todas as palavras na árvore que começarem por esse bocado têm de ser imprimidas.
Até agora eu tenho assim:
Se tiver na árvore as palavras "casa", "casamento", só é imprimida a primeira palavra e não sei porquê. Alguém me pode ajudar?
void procura( String x ) {
if(x.length()==0) {
listarPosOrdem(raiz); // se o utilizar não introduzir nada, imprimo todas as palavras da árvore, funciona.
return;
}
No actual = raiz;
if(actual==null){
System.out.println("palavra não encontrada");
return;
};
if(actual.oElemento.startsWith(x)==true){
System.out.println("Palavras encontradas: ");
System.out.println(actual.oElemento + " encontrada " + actual.contador + " vez(es) ");
}
while( actual != null && actual.oElemento.startsWith(x)==false){
if( x.compareTo(actual.oElemento)>0 ){
actual = actual.dir;
}
else
actual = actual.esq;
if(actual==null){
System.out.println("palavra não encontrada");
return;
}
if(actual.oElemento.startsWith(x)==true){
System.out.println("Palavras encontradas: ");
System.out.println(actual.oElemento + " encontrada " + actual.contador + " vez(es) ");
}
}
}
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.