trie字母查詢樹java實現

2021-07-05 01:13:51 字數 1403 閱讀 6021

1-實現單詞插入並統計插入次數

2-實現查詢單詞是否存於字母查詢樹中

3-實現自動補全提醒

注意:1-只支援全小寫字母單詞

2-查詢時間複雜度為log(h),h為單詞長度

3-插入時間複雜度為log(h),h為單詞長度

4-空間複雜度小於所有字母個數

結點**:

package bin.tree.trie;

/**字母查詢樹節點

* @author 牽手無奈

* date:2015-9-2

* */

public class mytrie

public mytrie(char letter)

public void initialnext()

if(isword(word))

/**檢查輸入單詞在字母樹中出現的次數

* @param word

* @return

*/public int checkcount(string word)

/**自動補全,列出可以匹配的單詞

* @param key

* @return

*/public listautocomplete(string key)

/**先序遍歷剩下的部分

* @param p

* @param list

* @param oneword

*/public void listalllast(mytrie p,listlist,stringbuffer oneword)else

}} }

/**檢查當前結點是否是葉子結點

* @param trie

* @return

*/public boolean checknext(mytrie trie)

return false; }

/**判斷輸入的字串是不是全是小寫字母

* @param word

* @return

*/public static boolean isword(string word)

/*** @param args

* @throws ioexception

*/public static void main(string args) throws ioexception

} inputstreamreader testinr = new inputstreamreader(system.in);

bufferedreader testreader = new bufferedreader(testinr);

do else

} while (true);

}}

本程式測試時從檔案讀入資料

trie樹 字典樹 java實現

public class trie public void insert string word else current.count current.isend true 怎麼判斷單詞是否存在?被判斷的單詞的字母與根節點下的子節點的字母進行比較,直到匹配到兩者最後乙個字母相同,並且最後乙個節點的i...

Trie(字典樹)的Java實現

簡單實現了乙個具有crud操作能力的trie。crud操作即插入 create 讀取 read 改變 update 和刪除 delete 刪除是基於當前結點的count實現的。當count為0時代表當前結點應該被完全刪除。trie的所有操作均為o n 其中n為所要操作的單詞的長度。public ke...

Trie樹(單詞查詢樹)

前言 tire樹,又稱之為字典樹或者單詞查詢樹。是一種樹形結構,是雜湊樹的變種。典型應用是用於統計 排序或儲存大量的字串 不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻的統計。因為相同的字串字首會共享同一條分支,所以優點是可以利用不同字串的相同字首來減少無謂的字串比較,查詢效率比hash表 has...