我在這裏發現了同樣的問題Traversing a trie to get all words,但它是用於Perl的,我只熟悉Java。 my trie結構是純整數數組,其中前26個整數是根,每個整數具有firstChild索引,它是子數組元素的索引(最多25個最高位),列表結束位標誌,結束標誌位,字位標誌,字母索引從1到26(最低5位)。 我可以遞歸打印一個字CAGE
如果我通過了2(用於字母c根索引)作爲參數遞歸字遍歷
private void oneWord(int node) {
System.out.print(getChar(Trie[node]));
if (getEOL(Trie[node]) != 1) {
oneWord(getFirstChild(Trie[node]));
}
}
或一個共同的開始和不同的結局等YARDELLOW
單詞碼和黃色(通過24作爲參數)
private void DFTSearch(int node) {
System.out.print(getChar(Trie[node]));
if (getFirstChild(Trie[node]) != 0) {
for (int i = 0; i < getSiblingsNum((getFirstChild(Trie[node])); i++) {
DFTSearch(getFirstChild(Trie[node]) + i);
}
}
}
,但不能做到這一點與所有單詞((我已經試過這並使其返回一個字符串,而沒有得到任何成功(剛獲得的一個第一封信字符串 請幫助使用遞歸打印的方法(還有什麼更好 - 返回字符串數組)我的特里將會有這樣的話。 這不是一個家庭作業,我是自學的))
您的第一個提案的各個環節被打破,並沒有什麼對谷歌現在,即使是在高速緩存中。我讀過[鏈接] https://forums.oracle.com/forums/thread.jspa?threadID=2068706,但還有另一種結構 – Ewa
奇怪的是,對我來說,鏈接正在工作。讓我們再試一次:[Oracle論壇主題](https://forums.oracle.com/forums/thread.jspa?messageID=8787521)和[Google代碼上的簡單特里項目](http://code.google.com/ p /線索)。我希望這些工作...... :-) –