又稱單詞查詢樹,
trie樹
,是一種
樹形結構
,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比
雜湊表高。
定義
1 typedef struct字典樹的建立插入trie2;
67 trie root;
void insert(char *str)資料結構有關單詞的搜尋p->next[id]=q;
p=p->next[id];
}else
}if(p->key!=-1
)
else
p->key=-1
;}
★資料輸入
輸入第一行為乙個正整數n ( n < =10000)。
接下來n行,每行開頭是乙個數字1或者2。
如果是1,後面會有乙個單詞,代表winder在筆記本上記錄下這個單詞。每個單詞僅
由小寫的英文本母組成,且長度不超過8。
如果是2,則代表winder想知道現在他已經背了幾個不同的單詞。
★資料輸出
對於每個詢問,輸出一行乙個整數,表示winder已經背的不同的單詞個數。
輸入示例輸出示例
101 winder
21 hello
1 what
1 holy
1 hello
21 acm
1 winder
2輸出:
1451,建立字典樹
2,每個單詞的最後乙個結點位置標記為-1;如果插入單詞到最後乙個節點值key不為-1,為多乙個生詞count++;
附**:
1 #include2 #includeview code3 #include4 typedef struct
trie5;
910trie root;
1112
int count=0;13
void insert(char *str)
1428 p->next[id]=q;
29 p=p->next[id];30}
31else
3235}36
if(p->key!=-1)37
41else
42 p->key=-1;43
}4445int
main()
4660
else
if(x==2
)61 printf("
%d\n
",count);62}
63return0;
64 }
字典樹的應用
論吹牛,學弟一點也不輸個學長。為了找到自己的存在感,學弟又和學長在比誰前女友多,於是2個人撕逼開始了,學弟說我在大一的時候談了a個女朋友,學長說那是我乙個星期的 數量,我大一的時候談了ab個女朋友,學弟又說加上高中的我談了abc個女友,學長再次 不服,加上高中我談了abcdf個女朋友 想必大家已經明...
字典樹應用
trie,又稱字典樹 單詞查詢樹,是一種樹形結構,用於儲存大量的字串。它的優點是 利用字串的公共字首來節約儲存空間。相對來說,trie樹是一種比較簡單的資料結構.理解起來比較簡單,正所謂簡單的東西也得付出代價.故trie樹也有它的缺點,trie樹的記憶體消耗非常大.當然,或許用左兒子右兄弟的方法建樹...
字典樹及其應用
字典樹是一種比較特殊的樹,邊上有邊權 至少我是怎麼理解的 又名 trie 樹。大概長這樣 插入了cap,cat,csp,co,code 邊上是字符集,點上是點的編號,塗成藍色的代表是單詞的結尾。字符集可以是a z,0 9,true和false等等。字典樹有效的組織了單詞的關係,節省了時間和空間。vo...