创建字典树模板
2014-08-18 19:29
197 查看
#include<stdio.h> #include<stdlib.h> #include<string.h> #define M 10 //M可以根据可能的请况定义; typedef struct Trie { Trie *next[M]; int v; //v可以表示一个字典树到此有多少相同前缀的数目,这里根据需要应当学会自由变化 }; Trie *root ; void creat(char *str) { int len=strlen(str); Trie*pb=root,*pt ; //pb为当前节点,pt为当前节点的下一个节点 for( int i=0;i<len;i++) { int id=str[i]-'0'; if(pb->next[id]==NULL) { pt=(Trie*)malloc(sizeof(Trie)); pt->v=1; for ( int j=0;j<M;j++) pt->next[j]=NULL ; pb->next[id]=pt ; pb=pb->next[id] ; } else { pb->next[id]->v++; //pb -next[ id ] -> v即为当前节点的下一个节点的v printf("%d %d\n",pb->v,pb->next[id]->v); pb=pb->next[id]; } } // pb->v=-1; 标记字符串的结束 } int main () { char a[20]; root=(Trie*)malloc(sizeof(Trie)); root->v=1; for (int i=0;i<M;i++) root->next[i]=NULL ; while(~scanf("%s",a)) creat(a) ; return 0; }
相关文章推荐
- 创建自定义的Visual Studio项模板
- ASP.NET中动态创建DataGrid的模板列
- 利用数据绑定和模板创建Atlas应用程序
- 如何:在 DataList Web 服务器控件中动态创建模板
- OpenCms JSP 模板开发——创建一个“完全的”JSP模板
- XmlDocument的应用---创建Xml模板
- 动态创建 ASP.NET Web 服务器控件模板
- 技巧和诀窍:用VS 2005创建可重用的项目和部件模板
- ASP.NET中为DataGrid动态创建模板列
- 通用水晶报表模板创建实例
- 创建自定义的Visual Studio项模板(转)
- Visual c++中不使用对话框模板资源创建对话框应用
- 利用数据绑定和模板创建Atlas应用程序
- 使用 ASP.NET 语法创建模板
- 创建自定义模板 Building Custom Templates
- 使用XML创建 EMAIL 模板
- 创建新的区域模板的步骤
- DW 创建 模板小技巧 By Stabx
- OpenCms JSP 模板开发——创建一个简单的JSP模板
- OpenCms JSP 模板开发——创建一个含有多个可编辑元素的JSP模板