Ir ao conteúdo

Posts recomendados

Postado

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 nao 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 nao encontrada");
                return;

            }

            if(actual.oElemento.startsWith(x)==true){
                System.out.println("Palavras encontradas: ");
                System.out.println(actual.oElemento + " encontrada "  + actual.contador + " vez(es) ");


            }    


        }    
    }

  • 5 anos depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...