博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Trie树
阅读量:5066 次
发布时间:2019-06-12

本文共 1141 字,大约阅读时间需要 3 分钟。

Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。

下面以单词为例,插入、查找和删除实现

#define MaxN 26typedef struct TrieNode{    bool isStr; //标记是否构成单词    struct TrieNode *next[MaxN];}Trie;void InsertWords(Trie *root, const char *s){    if(root == NULL || *s == '\0')        return;    Trie *p = root;    while(*s != '\0')    {        if(p->next[*s-'a']==NULL)        {            Trie *temp = new Trie();            for(int i = 0; i< MaxN; i++)            {                temp->next[i] = NULL;            }            temp->isStr = false;            p->next[*s-'a'] = temp;            p = p->next[*s-'a'];        }        else        {            p = p->next[*s-'a'];        }        s++;    }    p->isStr = true;}int SearchWord(Trie *root, const char *s){    Trie *p = root;    while(p != NULL && *s != '\0')    {        p = p->next[*s-'a'];        s++;    }    return (p != NULL && p->isStr == true);}void delTrie(Trie *root){    for(int i = 0; i < MaxN; i++)    {        if(root->next[i] != NULL)            delTrie(root->next[i]);    }    delete root;}

 

转载于:https://www.cnblogs.com/awy-blog/p/3978321.html

你可能感兴趣的文章
WPF程序加入3D模型
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
android访问链接时候报java.net.MalformedURLException: Protocol not found
查看>>
dwz ie10一直提示数据加载中
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>