Indexing 寻找索引文件的有效方法

Indexing 寻找索引文件的有效方法,indexing,mapping,red-black-tree,Indexing,Mapping,Red Black Tree,我开始做一个新的家庭项目,我需要索引有路径的特定文件名。 该程序将索引本地硬盘上的文件,而无需处理文件内容(因此我假设/希望这是一个简单的实现)。 首先,用户将插入要编制索引的文件扩展名列表(在安装期间)。 然后,程序将运行并创建保存用户输入的特定文件路径的数据结构 按数据结构从中检索数据如下所示: my HDD=函数上的文件路径(用户输入的文件名) 我考虑了很久,写了一个数据结构的设计,这里是我的建议 (): 我将使用一个带有哈希函数的数组将扩展映射到一个单元格(每个单元格表示 扩展名文件的第

我开始做一个新的家庭项目,我需要索引有路径的特定文件名。 该程序将索引本地硬盘上的文件,而无需处理文件内容(因此我假设/希望这是一个简单的实现)。 首先,用户将插入要编制索引的文件扩展名列表(在安装期间)。 然后,程序将运行并创建保存用户输入的特定文件路径的数据结构

按数据结构从中检索数据如下所示:

my HDD=函数上的文件路径(用户输入的文件名)

我考虑了很久,写了一个数据结构的设计,这里是我的建议 ():

  • 我将使用一个带有哈希函数的数组将扩展映射到一个单元格(每个单元格表示 扩展名文件的第一个字母)

  • 在每个单元格内都会有一个以相同字母开头的扩展列表

  • 对于列表中的每个节点,都会有一个红黑树,用于搜索文件名,然后 找到文件名后,程序将检索树中存储的文件路径
    节点


  • 顺便说一下,通常我用C(低电平)或C++编程。

    < P>我认为你正在做一个过于复杂和复杂的方案。如果使用扩展名来定位<代码> MyFileTree <代码>,那么只需使用<代码> SortedDictionary <代码>,其中字符串是您的扩展,您将得到一个O(log n)检索框。

    您是对的,但是我来自C++的低级方法,C++中没有包含STL的排序字典,因此,在这种情况下,我应该使用地图数据结构和树。出于效率的考虑,这棵树应该是平衡的,有什么建议吗?非常感谢。