首页 > IT职业 > IT生活 > 玩转数据结构之字典树(前缀树 Trie)

import java.util.TreeMap;
public class Trie {
private class Node{
public boolean isWord;
public TreeMap next;
public Node(boolean isWord){
this.isWord = isWord;
next = new TreeMap();
}
public Node(){
this(false);
}
}
private Node root;
private int size;
public Trie(){
root = new Node();
size = 0;
}
// 获得Trie中存储的单词数量
public int getSize(){
return size;
}
// 向Trie中添加一个新的单词word
public void add(String word){
Node cur = root;
for(int i = 0 ; i // 查询单词word是否在Trie中
public boolean contains(String word){
Node cur = root;
for(int i = 0 ; i // 查询是否在Trie中有单词以prefix为前缀
public boolean isPrefix(String prefix){
Node cur = root;
for(int i = 0 ; i /// 208. Implement Trie (Prefix Tree)
/// https://leetcode.com/problems/implement-trie-prefix-tree/description/
import java.util.TreeMap;
public class Trie208 {
private class Node{
public boolean isWord;
public TreeMap next;
public Node(boolean isWord){
this.isWord = isWord;
next = new TreeMap();
}
public Node(){
this(false);
}
}
private Node root;
public Trie208(){
root = new Node();
}
// 向Trie中添加一个新的单词word
public void insert(String word){
Node cur = root;
for(int i = 0 ; i 
/// Leetcode 211. Add and Search Word - Data structure design
/// https://leetcode.com/problems/add-and-search-word-data-structure-design/description/
import java.util.TreeMap;
public class WordDictionary {
private class Node{
public boolean isWord;
public TreeMap next;
public Node(boolean isWord){
this.isWord = isWord;
next = new TreeMap();
}
public Node(){
this(false);
}
}
private Node root;
/** Initialize your data structure here. */
public WordDictionary() {
root = new Node();
}
/** Adds a word into the data structure. */
public void addWord(String word) {
Node cur = root;
for(int i = 0 ; i import java.util.TreeMap;
public class MapSum {
private class Node{
public int value;
public TreeMap next;
public Node(int value){
this.value = value;
next = new TreeMap();
}
public Node(){
this(0);
}
}
private Node root;
/** Initialize your data structure here. */
public MapSum() {
root = new Node();
}
public void insert(String key, int val) {
Node cur = root;
for(int i = 0 ; i 
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3265/viewspace-2811341/ ,如需转载,请注明出处,否则将追究法律责任。