字典樹Trie C 實現

2021-09-17 02:48:44 字數 941 閱讀 5998

#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...