1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Arvores

Discussão em 'Programação' iniciada por araqh, 4 de Junho de 2009. (Respostas: 0; Visualizações: 523)

  1. 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 é que 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 com comentarios:

    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)
       { 
           
       }*/
        
    
    }
    
    Obrigado.
     

Partilhar esta Página