- 论坛徽章:
- 0
|
5可用积分
现在我读一个文本文件,里面有 字符串
我的
我的爱人
我的爱情
.......
利用map容器生成一棵树型结构
我
的
爱
人 情
部分源代码如下
struct node
{
int unicode;
map<int, node*> child_node;
int flag;
};
node * CreateTree(node *cur,int unicode)
{
node *child;
map<int, node*>::iterator it;
it = cur->child_node.find(map<int, node*>::key_type(unicode));
if(it == cur->child_node.end())
{
child = new node();
child->unichar = unicode;
child->flag = 0;
cur->child_node.insert(map<int, node*>::value_type(unicode,child));
}
else
{
child = it->second;
}
return child;
}
int main()
{
node *root;
root = new node;
node *cur;
node *child;
.........
cur = CreateTree(cur,unicode);
...........
}
现在利用这个树型结构查找里面是否有 有跟字符串“我的爱”匹配的,如果有匹配就输出文本词库的字符串
想要得到结果为:我的爱人 我的爱情
各位高人能不能帮帮小弟啊,非常感谢,我分就那么点,不好意思啊,就是下面的程序写不好
node *find_node(node *cur,int code)
{
map<int, node*>::iterator it;
it = cur->child_node.find(map<int, node*>::key_type(code));
if(it == cur->child_node.end())
{
}
else
{
}
} |
最佳答案
查看完整内容
楼主就是在造 trie 树, 楼主在不在了?递归,或者两重循环都好啊,26号的帖子。。 估计已经解决了。不过你以int 为key 这样就没利用上map本身的结构, 你以 中文unicode 为key 就不用查找了: map
|