文件系统的数据结构 - 访谈

时间:2015-09-15 04:07:38

标签: algorithm data-structures

我在网上遇到了以下面试问题。根据我的理解,它要求您设计一个数据结构来模拟文件系统。任何人都可以给我一些提示吗?

// addMapping("/foo/bar/x", "XController")
// addMapping("/foo/bar/z", "ZController")
// addMapping("/foo/baz", "BazController");

//getMapping("/foo/bar/x") -> ["XController"]
//getMapping("/foo/bar") -> ["XController", "ZController"]


public void addMapping(String path, String destination) {
    //candidate TODO

}

public List<String> getMapping(String path) {
    //candidate TODO  

}

1 个答案:

答案 0 :(得分:1)

我认为用于此映射的最佳结构是Trie甚至更好的压缩版本 - Patricia Tree(a.k.a radix tree)。这个想法如下 - 两个结构都存储字典单词的前缀。当用户查询给定路径时,您将根据查询字符串遍历结构(无论是trie还是基数树)。之后,您可以在最终结束的节点下遍历子树,并打印与该节点关联的所有控制器。