- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
trie树实验报告
//Trie树.cpp:Definestheentrypointfortheconsoleapplication.// #include //此函数只考虑26个英文字母的情况 #include #include usingnamespacestd; #defineMAX_CHILD26 typedefstructTree { intcount;//用来标记该节点是个可以形成一个单词,如果count!=0,则从根节点到该节点的路径可以形成一个单词 structTree*child[MAX_CHILD]; }Node,*Trie_node; Node*CreateTrie()//创建trie节点树{ } voidinsert_node(Trie_noderoot,char*str)//trie树插入结点Node*node=(Node*)malloc(sizeof(Node));memset(node,0,sizeof(Node));returnnode; if(root==NULL||*str==\0) return; Node*t=root; char*p=str; while(*p!=\0) { if(t-child[*p-a]==NULL) { Node*tmp=CreateTrie(); t-child[*p-a]=tmp; } t=t-child[*p-a]; p++; } t-count++; } voidsearch_str(Trie_noderoot,char*str)//trie树中 { if(NULL==root||*str==\0) { printf(trieisemptyorstrisnull\n);return; } 查找串是否在该 } Node*t=root;while(*p!=\0){}if(*p==\0){}elsecoutcount==0)coutchild[*p-a]!=NULL){}elsebreak;t=t-c(来自:写论文网:trie树实验报告)hild[*p-a];p++;elsecoutchild[i]!=NULL) } }free(root); int_tmain(intargc,_TCHAR*argv[]){ }}return0;inti,n;charstr[20];coutn;Trie_noderoot=NULL;root=CreateTrie();if(root==NULL)cout3usingnamespacestd;45constintbranchNum=26;//声明常量 6inti; 7 8structTrie_node 9{ 10boolisStr;//记录此处是否构成一个串。 11Trie_node*next[branchNum];//指向各个子树的指针,下标0-25代表26字符 12 13 14 15 16 17 18 19 20 21 22Trie_node():isStr(false){memset(next,NULL,sizeof(next));}};classTrie{public:Trie();voidinsert(constchar*word); 23boolsearch(char*word); 24voiddeleteTrie(Trie_node*root); 25private: 26Trie_node*root; 27}; 28 29Trie::Trie() 30{ 31root=newTrie_node(); 32} 33 34voidTrie::insert(constchar*word) 35{ 36Trie_node*location=root; 37while(*word) 38{ 39if(location-next[*word-a]==NULL)//不存在则建立40{ 41Trie_node*tmp=newTrie_node(); 42location-next[*word-a]=tmp; 43} 44location=location-next[*word-a];//每插入一步,相当于有一个新串经过,指针要向下移动 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
您可能关注的文档
最近下载
- 入党志愿书(全电子版).pdf VIP
- 人教PEP版四年级上册英语Unit 2《My friends》全单元教学课件(25秋新教材).pptx
- 2025届高考语文作文复习:审题立意——高考语文议论文写作技巧.pdf VIP
- 豆粕基础知识.ppt VIP
- 新人教版新目标九年级英语:全一册英文版教案.pdf VIP
- 高教版《数学-基础模块(上册)》教材练习习题复习题答案 第四章 三角函数.docx VIP
- 男性公民兵役登记表PDF打印.pdf VIP
- 湖南文艺四年级上册音乐教案.docx VIP
- 2025届高考语文复习:议论文审题立意+课件.pptx VIP
- 社会工作导论(王思斌-高教版).ppt VIP
文档评论(0)