字典樹的實現

2021-07-12 01:13:02 字數 1193 閱讀 4507

最近對字典樹來了興趣,心血來潮,把**敲了

下面是對字典樹的大體解釋:

字典樹是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。

字典樹的基本功能是用來查詢某個單詞(字首)在所有單詞中出現次數的一種資料結構,它的插入和查詢複雜度都為o(len),len為單詞(字首)長度,但是它的空間複雜度卻非常高,如果字符集是26個字母,那每個節點的度就有26個,典型的以空間換時間結構。

我們可以在字典樹的葉子節點記錄資訊

話不多說,直接**好理解:

#includeusing namespace std;

#include#include#includeconst int max = 26;

typedef struct tree

tree, *linktree;

linktree zdtree = null; //字典樹的根節點作為全域性變數,在以後函式好引用

void initzdtree(linktree &zdtree)

void creattree(linktree &p, char e)

int deletezdtree(char *s1) //刪除操作,只要將單詞葉子節點的count值改為0即可

p = p->next[m];

} p->count = 0;

cout << "the word is already" << endl;

return 1;

}int searchzdtree(char *s1)

cout << "the word is exit"

creattree(p->next[m], s1[i]);

p = p->next[m];

if (i == n - 1)

p->count++; }}

int main()

如果看完了,可以做一下這道題:杭電acm1251題

字典樹的實現

字典樹的實現 字典樹又稱為字首樹或者trie樹,是處理字串常用的資料結構。假設組成所有單詞的字元僅是 a z 請實現字典樹的結構,幷包含以下四個主要的功能。void insert string word 新增word,可重複新增 void delete string word 刪除word,如果wo...

字典樹實現

字典樹,又稱單詞查詢樹,trie 樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。以下是 實現部分 字典樹clas...

Trie樹(字典樹)的實現

trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的...