最近對字典樹來了興趣,心血來潮,把**敲了
下面是對字典樹的大體解釋:
字典樹是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。
字典樹的基本功能是用來查詢某個單詞(字首)在所有單詞中出現次數的一種資料結構,它的插入和查詢複雜度都為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的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的...