#include #include using namespace std;
/**trie樹 字典樹c++實現
*/class trienode
};public:
int end;//以該字元結尾的單詞個數
int path;//以該字元之前的字串為字首的單詞個數
trienode* nexts[26];
};//插入單詞
void insert(trienode* head, const string& word)
node->path++;
node = node->nexts[word[i] - 'a'];
} node->end++;
//該情況是單詞結尾的位置 字首數也加1
node->path++; }}
//求word出現的次數
int wordtimes(trienode* head, const string& word)
node = node->nexts[word[i] - 'a'];
} return node->end;
} return 0;
}//求以word為字首的單詞數
int wordprefix(trienode* head, const string& word)
node = node->nexts[word[i] - 'a'];
} return node->path;
} return 0;
}//刪除trie中的乙個word
void deleteword(trienode* head, const string& word)
node = node->nexts[word[i] - 'a'];
} node->end--;
}}
字典樹實現
字典樹,又稱單詞查詢樹,trie 樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。以下是 實現部分 字典樹clas...
字典樹實現 10 字典樹
字典樹就是一種樹形結構,優點是利用字串的公共字首來節約儲存空間,比如加入 abc abcd abd b bcd efg hik 構造出的字典樹如下 基本特徵 下面我們先實現乙個字典樹,假設所有單詞的字元僅僅是 a z 幷包含以下功能 void insert string word 新增word,可以...
Java實現字典樹
package d0726 public class t trie root new trie for string s str if find root,asdf else public static void insert final trie root,string str cur cur.c...