Estou tentando implementar uma trie muito simples em Java que admite 3 operações. Eu gostaria de ter um método de inserção, um método tem (isto é, uma palavra determinada no trie) e um método de tostagem para devolver o trie em forma de cadeia. Eu acho que a inserção funciona corretamente, mas tem e toString estão sendo difíceis. Isto é o que eu tenho até agora. Trie
a classe trie.
public class CaseInsensitiveTrie implements SimpleTrie { //root node private TrieNode r; public CaseInsensitiveTrie() { r = new TrieNode(); } public boolean has(String word) throws InvalidArgumentUosException { return r.has(word); } public void insert(String word) throws InvalidArgumentUosException { r.insert(word); } public String toString() { return r.toString(); } public static void main(String args) { CaseInsensitiveTrie t = new CaseInsensitiveTrie(); System.out.println("Testing some strings"); t.insert("TEST"); t.insert("TATTER"); System.out.println(t.has("TEST")); } }
e o nó da classe
Então, basicamente, ao criar um trie, um trineodo é criado como a raiz com 26 filhos. Ao tentar inserir, ele é invocado para esse nó raiz, que cria recursivamente um novo nó na posição correta e continua até que a palavra esteja completa. Eu acho que esse método está funcionando corretamente.
Minha função está muito quebrada, porque eu tenho que ter essa declaração de retorno fora dos parênteses por algum motivo. Eu não posso contê-lo dentro de uma cláusula de outra coisa ou o compilador reclama. Além disso, eu estou pensando que o método deve trabalhar com alguns ajustes, mas eu não posso resolvê-lo por causa da minha vida.
Tosting é uma besta que eu tentei abordar, mas nada do que lança funciona, então o que eu deixo até resolver o problema. Se eu tiver funcionamento, posso encontrar uma maneira de reformatá-lo em uma função de tostagem.
O propósito de int val = Word.Charat (0) – 64; É porque cada cadeia admitida deve ser maiúsculas (eu criarei uma função de formatação de seqüência de caracteres para garantir isso então) para que o valor int da primeira letra – 64 seja sua posição na matriz. Isto é, a taxa de matriz 0 é A, então A = 64, A – 64 = 0. B = 65, B – 64 = 1, e assim por diante.