我正在练习一些面试问题,我发现了一个有趣的问题,那就是构建一个基本的文件系统/终端。因为这是一道面试题,所以这个文件系统可能是一个基本的文件系统,涉及添加文件和目录,以及在目录内添加文件和目录。另一个功能是以逻辑方式打印出所有目录和文件。这一切都必须在不使用 Collections
库
我很好奇我会用什么数据结构来实现这个文件系统?我想到的是 hashtable
或 B 树
。
Hashtable 会是一个非常快的查找时间。但是它会占用大量内存。我打算使用质数作为我的存储桶大小。
B 树的内存效率会更高。但是查找时间会更慢。
或者两者都有?
例如:
所有文件存储在 hashtable
节点中,而目录存储在树节点中,树节点可以分支到其他目录节点或哈希表。
我的另一个问题是:看起来哪个更容易编码或实现打印所有
功能?
最佳答案
文件系统的最佳数据结构是树。如果你想到它,它自然会模拟目录结构的层次结构
dir1
dir2
dir2a
file2b
dir3
dir3a
file3b
file3c
dir4
file4a
关于java - 用于基本文件系统的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22444332/