日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字典树 模板

發(fā)布時(shí)間:2025/6/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字典树 模板 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/*******************************************************************************【字典樹】此模板主要是針對都是小寫字母的。其他情況在此基礎(chǔ)上改一改就可以了,要懂得靈活運(yùn)用。 ********************************************************************************/struct trie /*字典樹的節(jié)點(diǎn)內(nèi)容*/ {int count;/*計(jì)算該節(jié)點(diǎn)出現(xiàn)的次數(shù)*/trie *next[26];/*一個(gè)節(jié)點(diǎn)有26個(gè)指針(孩子),即'a'-'z'*/ };trie *root;trie* newtrie()/*建立一個(gè)節(jié)點(diǎn)。(也可以用建立個(gè)大的數(shù)組,指針指向數(shù)組不同位置)*/ { trie *t; t=(trie*)malloc(sizeof(struct trie)); memset(t,0,sizeof(struct trie)); return t; }void Insert(char *ch) /*插入函數(shù),將該字符串插入到字典樹中 */ { int i; trie *t,*s; s=root; for(i=0;ch[i];i++) { if(s->next[ch[i]-'a']) { s=s->next[ch[i]-'a']; s->count=s->count+1; } else { t=newtrie(); s->next[ch[i]-'a']=t; s=t; s->count=1; } } } int Search(char *ch)/*搜索函數(shù),返回0則代表字典樹不存在該字符串,反之亦然 */ { int i; trie *s=root; if(ch[0]==0) return 0; for(i=0;ch[i];i++) { if(s->next[ch[i]-'a']) s=s->next[ch[i]-'a']; else break; } if(ch[i]==0) return s->count; else return 0; } void Delete(char *ch)/*刪除函數(shù),將該字符串從字典樹中刪除(刪除之前記得事先判斷存不存在該字符串)*/ { int i; trie *s; s=root; for(i=0;ch[i];i++) { s=s->next[ch[i]-'a'];s->count=s->count-1;} }

總結(jié)

以上是生活随笔為你收集整理的字典树 模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。