设为首页 加入收藏

TOP

uva 1556 - Disk Tree(字典树)
2015-07-20 17:45:55 来源: 作者: 【 】 浏览:79
Tags:uva 1556 Disk Tree 字典

题目连接:uva 1556 - Disk Tree

题目大意:给出N个目录关系,然后按照字典序输出整个文件目录。

解题思路:以每个目录名作为字符建立一个字典树即可,每个节点的关系可以用map优化。

#include 
   
     #include 
    
      #include 
      #include 
      
        #include 
       
         #include 
        
          using namespace std; const int maxn = 50005; typedef map
         
          ::iterator iter; struct Tire { int sz; map
          
            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); } }
          
         
        
       
      
    
   
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva 12338 - Anti-Rhyme Pairs(后.. 下一篇poj-2524-Ubiquitous Religions

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何利用Python做数 (2025-12-24 23:48:36)
·如何使用python进行 (2025-12-24 23:48:34)
·python 爬虫入门该怎 (2025-12-24 23:48:31)
·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)