数据结构-线段树Trie
2016-05-17 06:47
337 查看
闲来没事写了个带前缀的线段树模版。
#include <cstdio> #include <iostream> #include <cstring> #include <string> using namespace std; struct Trie { int val; Trie *next[26]; }; void insert(Trie *root, string s) { Trie *p = root; for (auto i = s.begin(); i != s.end(); i++) { int idx = *i - 'a'; if (p->next[idx] == nullptr) { p->next[idx] = new Trie; } p = p->next[idx]; p->val++; } } Trie *search(Trie *root, string s) { Trie *p = root; for (auto i = s.begin(); i != s.end(); i++) { int idx = *i - 'a'; if (p->next[idx] == nullptr) { return nullptr; } p = p->next[idx]; } return p; } void remove(Trie *root, string s) { Trie *p = root; int k = search(root, s)->val; if (k == 0) { return; } for (auto i = s.begin(); i != s.end(); i++) { int idx = *i - 'a'; p = p->next[idx]; p->val -= k; } for (int i = 0; i < 26; i++) { p->next[i] = nullptr; } } int main() { Trie *root = new Trie; return 0; }
相关文章推荐
- 三角网格数据结构-2
- 三角网格数据结构
- 数据结构和算法二叉树排序
- 数据结构第一讲
- 线性表--顺序实现
- 第9章 数据结构
- 第9章 数据结构
- 第9章 数据结构
- 【数据结构】树
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表六:有序链表的建立
- 数据结构之线性表的概念
- 数据结构实验之链表五:单链表的拆分
- 数据结构课程笔记_拓扑排序
- 关于数据结构的内存分配问题
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- 共同学习Java源代码--数据结构--ArrayList类(四)
- SDUT3333数据结构实验之栈六:下一较大值(二)
- 数据结构实验之链表四:有序链表的归并
- 数据结构---链表操作(线性结构)