#include <stdio.h>
#define MAX_NODE 1000000
typedef struct NODE
{
int iCount;
struct NODE *pNext[26]; /* 26个孩子,26个字符 */
}NODE,*PNODE;
NODE node[MAX_NODE];
int ix_node = 0;
void Init(PNODE *pRoot);
PNODE CreateNode(); /* 创建新结点 */
void Insert(PNODE *pRoot,char *s); /* 插入 */
int Search(PNODE *pRoot,char *s); /* 查找 */
int main()
{
PNODE pRoot = NULL;
Init(&pRoot);
char list[20];
char input[20];
while(gets(list) && list[0])
Insert(&pRoot,list);
while(gets(input))
printf("%d\n",Search(&pRoot,input));
return 0;
}
int Search(PNODE *pRoot,char *s)
{
int i,k;
PNODE p = *pRoot;
if(!p)
return 0;
i = 0;
while(s[i])
{
k = s[i++] - 'a';
if(!p->pNext[k]) /* 没有出现过 */
return 0;
p = p->pNext[k];
}
return p->iCount;
}
void Insert(PNODE *pRoot,char *s)
{
PNODE p = *pRoot;
int i,k;
if(!p)
p = *pRoot = CreateNode();
i = 0;
while(s[i])
{
/* 找到相应的分支 */
k = s[i++] - 'a';
if(p->pNext[k]) /* 如果此孩子非空 */
{
p->pNext[k]->iCount++;
}
else /* 如果此孩子为空,则创建 */
{
p->pNext[k] = CreateNode();
}
p = p->pNext[k];
}
}
PNODE CreateNode()
{
PNODE p;
int i;
/* 从数组中取出根结点 */
p = &node[ix_node++];
p->iCount = 1;
/* 孩子设为空 */
for(i = 0 ; i < 26 ; ++i)
p->pNext[i] = NULL;
return p;
}
void Init(PNODE *pRoot)
{
(*pRoot) = NULL;
}
没有合适的资源?快使用搜索试试~ 我知道了~
M.rar_前缀树_单词出现次数_字典树 matlab
共1个文件
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 101 浏览量
2022-09-24
19:33:05
上传
评论
收藏 758B RAR 举报
温馨提示
字典树的基本功能是用来查询某个单词(前缀)在所有单词中出现次数的一种数据结构,它的插入和查询复杂度都为O(len),Len为单词(前缀)长度,但是它的空间复杂度却非常高,如果字符集是26个字母,那每个节点的度就有26个,典型的以空间换时间结构。
资源详情
资源评论
资源推荐
收起资源包目录
M.rar (1个子文件)
M.m 2KB
共 1 条
- 1
Kinonoyomeo
- 粉丝: 91
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- flinksql专用资源,各种jar包
- CLShanYanSDKDataList.sqlite
- C#ASP.NET销售管理系统源码数据库 SQL2008源码类型 WebForm
- 1111232132132132
- 基于MAPPO算法与DL优化预编码的多用户MISO通信系统双时间尺度传输方案设计源码
- 基于微信拍照功能的ohos开源CameraView控件设计源码
- 基于JavaCV的RTSP转HTTP-FLV流媒体服务设计源码
- 基于Python的西北工业大学MobilePhone软件开发项目设计源码
- 基于Java语言实现的LeetCode-hot100题库精选设计源码
- 基于ThinkPHP5.0的壹凯巴cms设计源码,适用于小型企业建站灵活组装开发
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0