gpt4 book ai didi

java - 模拟文件系统的最优算法和数据结构

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:26 25 4
gpt4 key购买 nike

我在面试测试中遇到了以下问题(必须简短易懂):我必须建立一个文件系统。我必须创建一个文件对象,假设它有一个 id。我必须创建一个目录,它有一个 id,我可以添加一些辅助数据。我不能使用任何 java.util.Collections,我需要自己创建所有 dast。问题是找到目录层次结构的最佳实现。我需要实现的功能是:addDirectory(parentDirectoryId)removeDirectory(DirectoryId)、printAll() - 以逻辑方式打印文件夹和文件的层次结构。

我在想的是在它下面有一个根目录目录和文件。这将实现为每个目录 D 都有一个所有目录的列表,这些目录是它的直接子目录。在每个目录中都有一个直接和间接子目录 ID 的列表-所以如果我想删除一个目录,我将遍历它的 subDids 列表并检查是否存在我将继续沿着树向下直到我到达我想要的目录去除。问题如下:使用这个实现,我将不得不递归地更新 id 的列表,这是一个令人头疼的问题。每次添加或删除后,我都必须返回并更新列表。另一个问题是运行时间可能效率不高,因为如果我有一棵又宽又长的树,我必须删除或添加一个目录,它位于树的所有目录的叶子上,我将不得不去为了做到这一点,遍历整棵树。

你能帮我找到一个更好的 DirectoryFile 系统实现吗?我可以自由地按照自己的方式实现它,我的时间真的很短。我建议的树结构只是一个想法,我有点坚持它。

最佳答案

我不确定对此是否有快​​速答案,但您可以查看下载链接 on this page ,它为您提供了 MOSS 的源代码,MOSS 是一种用 Java 编写的文件系统模拟器。

MOSS 一定有一个很好的方法来满足您的需求。由于面试问题只要求您完成 MOSS 所做的一部分,因此您只需阅读完成您需要的部分,然后从中开发您自己的解决方案。

关于java - 模拟文件系统的最优算法和数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com