Abp

6 respostas
J

Preciso de uma ajuda. Estou a criar uma arvore binaria de pesquisa. Acontece é q a partir da arvore eu tenho que procurar uma palavra, apagar automaticamente palavras q se repetem mais de 15 vezes(com a informação de qual), e esta ficando complicado. A arvore já feita esta desta forma:

public class ABPesq {
    
     private  String newVal;
     private BSTNode p ;
    
    /** Creates a new instance of ABPesq */
    public ABPesq() {
    }
    
    
      BSTNode root = null;
    
    public void insert(String newVal) {
        if (root == null) {
            root = new BSTNode(newVal);
            
        }
        else {
            BSTNode p = root;

            while (p != null) {
                
                int compared = newVal.compareToIgnoreCase(p.info);
        

                if (compared == 0) {
                    p.count++;
                    break;
                }
                else if (compared < 0) {
                    if (p.left == null) {
                        p.left = new BSTNode(newVal);
                        break;
                    }
                    else {
                        p = p.left;
                    }
                }
                else {
                    if (p.right == null) {
                        p.right = new BSTNode(newVal);
                        break;
                    }
                    else {
                        p = p.right;
                    }
                }
                                if (newVal.equals(p.info))
                                     {
                                         p.count+=1;
                                System.out.println(p.info+"("+p.count+")");
                                return;
                                             }

                                                         
              if (newVal.equals(p.info)) {
                p.count+=1;
            if( p.count > 15 ){
                             System.out.println("A palavra "+p.info+ "  foi repetida  ("+p.count+") vezes");//saida
            
            }
    
    return ;
    }
                
            }
        }
                    
    }
 
    class BSTNode{
        
       
    final String info;
    int count = 1;
    BSTNode left;
    BSTNode right;
    
    public BSTNode(String newVal)
    {
        this.info = newVal;
         
    }    
}
Ainda assim esta class apresenta alguns erros tal com a repitição das palavras quantas vezes elas existam em vez de informar apenas q a palvra repete-se x vezes. Alguma ajuda para implementar as outra funções serão bem vindas

Aquele abraço

Jose
Moz



}//fim

[nota ao autor: pelo amor de deus... use as tags "code" para demarcar trecho de código!!]

6 Respostas

H

Infelizmente não sei te responder direito pois tambem estou com dificuldades mas não quanto a aspectos semanticos do algoritmo mas sim quanto ao desenho de uma arvore na tela para o usuario,vc por acaso teria inventado alguns metodos pra o desenho dos nós não? Poderia me ajudar bastante… :roll:

J

:?

:? :? :?

_fs

Oi cara, não entendi a sua dúvida

dica: quando postar código, coloque entre as tags [ code]seucodigo[ /code], assim ele fica endentado :D[/quote]

J

A questão é simples. Como esta, se eu escrever 20 vezes a palavra “word”, o output deste metedo sera word 1 vez, word 2 vezes word 3 vezes…word 20 vezes…o q se pretende é que se escreva apenas wors 20 vezes! Qto ao resto é, assim que se repetisse 15 vezes a mesma palavra deveria ser automaticamente eliminada do texto. Devera implementar uma forma de procurar uma determinada palavra dada.
Simples?? Pois é, só q ja começo a desistir!!!

Obrigadão

Jose

J

:?

J

:?:

Criado 15 de maio de 2004
Ultima resposta 22 de mai. de 2004
Respostas 6
Participantes 3