标签:
用树来对字符串进行处理
以树形存储字符数据,便于处理
建树代码:
typedef struct Trie{ char c; int count; // 存放该节点之前的字符串为前缀的字符串个数 struct Trie* next[26]; }Trie; void Trie_{ // 节点初始化 Trie *root = new Trie; for(int i = 0; i< 26; i++) root->next[i] = NULL; cin >> N; while(N--){ cin>> str; Trie *p = root; for(int i = 0; i< str.size(); i++){ int j = str[i] - ‘a‘; // 存在数量加一,不存在建节点 if(p->next[j]) p->next[j]->count++; else{ Trie *q = new Trie; q->c = str[i]; q->count = 1; for(int k = 0; k< 26; k++) q->next[k] = NULL; p->next[j] = q; } p = p->next[j]; } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://www.cnblogs.com/ygdblogs/p/5373103.html