hiho一下第二周——字典树
来源:互联网 发布:python asyncio.wait 编辑:程序博客网 时间:2024/06/05 07:53
hiho一下第二周——字典树
#include <iostream> #include <stack>#include <vector>#include <algorithm>#include <queue>#include <map>#include <cstdio> #include <cstring>using namespace std; typedef struct Trie_node { int count; // 统计单词前缀出现的次数 struct Trie_node* next[26]; // 指向各个子树的指针 bool exist; // 标记该结点处是否构成单词 }TrieNode , *Trie;TrieNode* createTrieNode() { TrieNode* node = (TrieNode *)malloc(sizeof(TrieNode)); node->count = 0; node->exist = false; memset(node->next , 0 , sizeof(node->next)); // 初始化为空指针 return node; }void Trie_insert(Trie root, char* word) { Trie node = root; char *p = word; int id; while( *p ) { id = *p - 'a'; if(node->next[id] == NULL) { node->next[id] = createTrieNode(); } node = node->next[id]; // 每插入一步,相当于有一个新串经过,指针向下移动 ++p; node->count += 1; // 这行代码用于统计每个单词前缀出现的次数(也包括统计每个单词出现的次数) } node->exist = true; // 单词结束的地方标记此处可以构成一个单词 } int Trie_search(Trie root, char* word) { Trie node = root; char *p = word; int id; while( *p ) { id = *p - 'a'; node = node->next[id]; ++p; if(node == NULL) return 0; } return node->count; } int main() { int argc1,argc2,ans; int i = 0; char *argv1,*argv2; //freopen("data.txt","r",stdin); Trie root = createTrieNode(); // 初始化字典树的根节点 char str[12] ; bool flag = false; cin >> argc1; while(i < argc1 && cin >>str) { Trie_insert(root , str); //cout << str << endl; i++; } i = 0; cin >> argc2; while(i <= argc2 && cin >> str) { printf("%d\n",Trie_search(root , str)); i++; } //system("pause"); return 0; }
0 0
- hiho一下第二周——字典树
- 简单的字典树实现——hiho一下第二周
- hiho一下 第二周
- 【hiho一下】第二周 Trie树
- hiho一下第二周 Trie树
- hiho一下第二周:Trie树
- hiho一下第二周#1014 : Trie树
- hiho一下第二周Trie树 题解
- hiho第二周——Trie树
- 编程之美hiho一下第二周Trie树
- hiho一下第二周 Hihocoder #1014 : Trie树
- (hiho一下第二周)#1014 Trie树 【模版】
- 堆——hihoCoder "hiho一下 第二十八周"题目解析
- hiho 第二周 trie树
- hiho一下 第二十六周---最小生成树一·Prim算法
- hihoCoder - hiho一下 第二十六周 - A - 最小生成树一·Prim算法
- hihoCoder - hiho一下 第二十七周 - A - 最小生成树二·Kruscal算法
- hiho一下 第二十七周:最小生成树二·Kruscal算法
- 找出最长递增子序列
- 英语的春天--程序员学英语
- F5负载均衡器的功能介绍
- 关于OCP
- 【读书笔记】iOS-编码对象
- hiho一下第二周——字典树
- HDU 5480 Conturbatio(并查集或前缀和)
- java面试题二十四 继承题2
- DevExpress SpreadsheetControl 代码创建Chart图表
- Centos 窗口最小化后,找不到在哪里还原
- red hat enterprise linux 6 改为中文
- 初探socket(2)
- JavaScript 闭包
- 【树链剖分】【最大生成树】[NOIP2013]codevs3287 货车运输