C# 使用c中的树进行目录(文件夹)操作#
人们谈论C# 使用c中的树进行目录(文件夹)操作#,c#,.net,algorithm,data-structures,tree,C#,.net,Algorithm,Data Structures,Tree,人们谈论树,是的,我可以理解树的概念,以及遍历它的方法。有趣的是,在二叉搜索树中的搜索时间是O(logn) 现在,我的系统中有一些文件夹,它们的文件结构是不会被修改,除了经常添加新文件 我可以想象,如果我构建一个表示文件夹结构的二叉搜索树,我可以很好地使用O(logn)中的文件名进行搜索。我知道使用内置的.NET方法可以非常有效地完成这项工作,但我正在尝试查看使用该树的实际用例场景 MSDN指出,”树是常见的数据结构,因为许多实际问题都表现出类似树的行为。例如,人、事物或对象之间的任何层次关系都
树
,是的,我可以理解树
的概念,以及遍历它的方法。有趣的是,在二叉搜索树中
的搜索时间是O(logn)
现在,我的系统中有一些文件夹
,它们的文件结构是不会被修改
,除了经常添加新文件
我可以想象,如果我构建一个表示文件夹结构的二叉搜索树,我可以很好地使用O(logn)
中的文件名进行搜索。我知道使用内置的.NET方法可以非常有效地完成这项工作,但我正在尝试查看使用该树的实际用例场景
MSDN指出,”树是常见的数据结构,因为许多实际问题都表现出类似树的行为。例如,人、事物或对象之间的任何层次关系都可以建模为一棵树。
但是,问题是我无法将上述需求建模为一棵树
问题是:
我无法想象如何连接BST概念和我的需求
。我看到的每一个二叉树示例都只是通过向节点添加一些简单的整数并遍历来解释
如何为目录遍历构建树?(请-一些代码或伪代码,而不仅仅是理论答案!)
如何存储已构建的树
(至于从我的文件夹结构中获取所有文件,我使用我的代码)我认为您从根本上混淆了两个不相关的概念。树是一种具有与其关联的层次结构的数据结构。二叉搜索树是一种数据结构,它是一棵树,但对其形状有更多的限制。每个节点必须有零个、一个或两个子节点。每个节点在其中存储一些键,并且树具有这样的属性:对于每个节点,其左子树中节点中的所有键都小于原始节点的键,其右子树中节点中的所有键都大于原始节点的键
虽然您可以使用一些技巧将目录树表示为二叉搜索树,但这样做可能会被误导,因为这是一个错误的工具。目录树可以具有任意大的分支因子,并且不会以任何排序顺序存储。我建议从阅读一般树开始,而不仅仅是二叉搜索树,以便更好地理解区别,并获得有关如何表示任意树结构的更多信息
至于如何实际构建目录树,您可能希望研究深度优先搜索或广度优先搜索算法,这可能是探索目录结构和构建目录树的最佳候选算法
希望这有帮助 因此,这不是提出此类问题的地方。常见问题解答将帮助您为此网站选择正确的问题。我想试试程序员。