能帮忙改一个查找单词的小程序吗题目:设集合S由若干单词(英文)组成,给定字符串K,在S中查找与K最佳匹配的结果.最佳匹配

能帮忙改一个查找单词的小程序吗
题目:设集合S由若干单词(英文)组成,给定字符串K,在S中查找与K最佳匹配的结果.最佳匹配的结果定义为:与K有最长共同前缀的字符串.使用文件保存初始的单词数据(至少100个),以逗号分隔.例:S={abc, bdef, zhen, zhao, abdd},K1=zhao,K2=abdf,K3=cheng,则与K1最匹配的结果是zhao,与K2最匹配的结果是abdd,与K3最匹配的结果是ε(空串).
#include
#include
const int sonnum=26;
struct TrieNode{ //结点结构体
int num; //到达该节点出的前缀个数
bool beach; //若是beach为true
struct TrieNode *son[sonnum]; //子节点指针
};
TrieNode *NewTrie(){ //创建新节点
TrieNode *newtrie=new TrieNode; //定义新结点
newtrie->num=1; //初始化当前单词个数只本身
newtrie->beach=false; //初始化为叶子节点,不存在子节点
for(int i=0;ison[i]=NULL;
return newtrie;
}
void Insert(TrieNode *tte,char *s,int len){ // 在TrieTree中插入新单词,TrieTree是根结点、
TrieNode *node=tte; //定义新结点指针作为当期结点指针指向根节点
for(int i=0;ison[s[i]-'a']==NULL) //如果子节点为空 (跟结点不存放字母)
node->son[s[i]-'a']=NewTrie();
else node->son[s[i]-'a']->num++;//非空)到达该节点的单词个数加一
node=node->son[s[i]-'a']; //当前节点指向下一个字母节点
}
node->beach=true; //最后一个结点设置为叶子节点
}
void Find(TrieNode *tte,char *s,int len){ //查找单词

TrieNode *node=tte; //定义新结点指针
cout
糊戈馒头 1年前 已收到1个回答 举报

不得不爱自己 幼苗

共回答了21个问题采纳率:81% 举报

错误很多啊,cin的用法不对,安全处理不好,最重要的是查找逻辑的问题
都改了,测试成功.
#include
#include
#include
const int sonnum=26;
struct TrieNode{ //结点结构体
x05int num; //到达该节点出的前缀个数
x05bool beach; //若是beach为true
x05struct TrieNode *son[sonnum]; //子节点指针
};
TrieNode *NewTrie(){ //创建新节点
x05TrieNode *newtrie=new TrieNode; //定义新结点
x05newtrie->num=1; //初始化当前单词个数只本身
x05newtrie->beach=false; //初始化为叶子节点,不存在子节点
x05for(int i=0;ison[i]=NULL;
x05return newtrie;
}
void Insert(TrieNode *tte,char *s,int len){ // 在TrieTree中插入新单词,TrieTree是根结点、
x05if(len==0) return;
x05TrieNode *node=tte; //定义新结点指针作为当期结点指针指向根节点
x05for(int i=0;ison[s[i]-'a']==NULL) //如果子节点为空 (跟结点不存放字母)
x05x05x05node->son[s[i]-'a']=NewTrie();
x05x05else node->son[s[i]-'a']->num++;//非空)到达该节点的单词个数加一
x05x05node=node->son[s[i]-'a']; //当前节点指向下一个字母节点
x05}
x05node->beach=true; //最后一个结点设置为叶子节点
}
void Find(TrieNode *tte,char *s,int len){ //查找单词
x05
x05TrieNode *node=tte; //定义新结点指针
x05cout

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.836 s. - webmaster@yulucn.com