uva 1556 - Disk Tree(字典树)
来源:互联网 发布:网络协议的作用是什么 编辑:程序博客网 时间:2024/05/21 14:41
题目连接:uva 1556 - Disk Tree
题目大意:给出N个目录关系,然后按照字典序输出整个文件目录。
解题思路:以每个目录名作为字符建立一个字典树即可,每个节点的关系可以用map优化。
#include <cstdio>#include <cstring>#include <map>#include <string>#include <iostream>#include <algorithm>using namespace std;const int maxn = 50005;typedef map<string, int>::iterator iter;struct Tire { int sz; map<string, int> g[maxn]; void init(); void insert(string s); void put(int u, int d);}tree;int main () { int n; string s; while (cin >> n && n) { tree.init(); for (int i = 0; i < n; i++) { cin >> s; s += '\\'; tree.insert(s); } tree.put(0, 0); cout << endl; } return 0;}void Tire::init() { sz = 1; g[0].clear();}void Tire::insert(string s) { int u = 0; string word = ""; for (int i = 0; i < s.length(); i++) { if (s[i] == '\\') { if (!g[u].count(word)) { g[sz].clear(); g[u][word] = sz++; } u = g[u][word]; word = ""; } else word += s[i]; }}void Tire::put (int u, int d) { for (iter i = g[u].begin(); i != g[u].end(); i++) { for (int j = 0; j < d; j++) cout << " "; cout << i->first << endl; put(i->second, d + 1); }}
1 0
- uva 1556 - Disk Tree(字典树)
- UVa 1556 - Disk Tree
- UVA 1556 - Disk Tree(Trie)
- Disk Tree
- Disk Tree
- 字典树(trie tree)
- Trie-tree (字典树)
- Trie-Tree字典树
- 字典树(Trie Tree)
- Tree字典树讲解
- 字典树 Trie Tree
- UVA 12937 字典树
- uva 11488 字典树
- UVA 11488 字典树
- HDU 1504 Disk Tree
- poj1760 Disk Tree
- poj-1760 Disk Tree
- 数据结构--字典树(trie tree)
- 没关闭socket带来的后果
- 采购管理系统--合同、采购单、发货单、返厂单管理
- 2014,回顾总结
- Servfox和Spcaview嵌入式视频监控系统
- 2-1 JSON方式封装通信接口
- uva 1556 - Disk Tree(字典树)
- gsoap常见使用方法
- poj 1182 带权并查集
- Unity3D默认的快捷键
- fork,vfork,clone的区别
- 浙大PAT考试1073~1076(2014-3-1)
- soapui测试webservice方法
- linux入门教程
- makefile bin