博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字典树模板(有待更新,链表版)
阅读量:6928 次
发布时间:2019-06-27

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

链表版:空间小,时间大。

数组版:空间大,时间小

struct node{    int num;    node *next[maxn];};//字典树class Tree{public:    node *head;    //构造函数    Tree()    {        head = New();    }    //创建一个新节点    node* New()    {        node *p = new node();        for (int i = 0; i < maxn; ++i)        {            p->next[i] = NULL;        }        p->num = 0;        return p;    }    //插入一个字符串    void insert(char *str)    {        int len = strlen(str);        node *t, *p = head;        for (int i = 0; i < len; ++i)        {            int c = str[i] - 'a';            if (p->next[c] == NULL)            {                t = New();    //创建新的节点                p->next[c] = t;            }                p = p->next[c];                p->num++;        }    }    int find(char *str)    {        node *p = head;        int len = strlen(str);        for (int i = 0; i < len; ++i)        {            int c = str[i] - 'a';            if (p->next[c] == NULL)                return 0;        //不存在这样的字符串                p = p->next[c];        }        return p->num;    }};

良心模板

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/10079035.html

你可能感兴趣的文章
jQuery遍历方式
查看>>
C++环境编译使用sqlite数据库全过程
查看>>
anaconda不错的
查看>>
大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
查看>>
vs配置D3D开发环境
查看>>
JS函数(自调函数)与闭包【高级函数】
查看>>
mysql decimal(10,2)对应java类型
查看>>
技术领导(Technical Leader)画像
查看>>
HTTP 用户认证
查看>>
android binder 基础实例及解析(一)【转】
查看>>
Qt网络编程之QNetworkAccessManager
查看>>
杂七杂八
查看>>
Lua代码提示和方法跳转
查看>>
关于时间差查询的一个小技巧
查看>>
Linux系列教程(十三)——Linux软件包管理之源码包、脚本安装包
查看>>
【.Net】优秀的开源框架
查看>>
Linux内存管理学习2 —— head.S中的段页表的建立
查看>>
sourcetree和Git的使用教程
查看>>
什么叫PV,UV,PR值
查看>>
2.Brackets安装及常用插件安装
查看>>