2011-02-10 42 views
0

我開始研究一個新的家庭項目,我需要索引具有文件名的路徑。 該程序將索引我的本地硬盤上的文件,不需要處理文件的內容(所以我假設/希望這將是簡單的實現)。 首先,用戶將插入文件擴展名列表以獲取索引(在安裝期間)。 然後程序將運行並創建保存用戶輸入的特定文件路徑的數據結構。尋找有效的方法來索引文件

從數據結構中檢索數據是這樣的:文件的

路徑上我的硬盤=

我思考了很長一段時間,並寫了一個設計功能(由用戶輸入文件名)對於數據結構這是我的建議 (Design Illustration):

  1. 我會用與映射擴展的哈希函數數組小區(每個小區呈現
    擴展文件的第一個字母)。

  2. 每個單元格內都會有一個以相同字母開頭的擴展名列表。

  3. 列表中的每個節點都將有用於搜索文件名的紅黑樹,然後 後,我們發現文件名的程序將檢索存儲在樹
    節點的文件的路徑。

哦,順便說一句,我通常在c(低級別)或C++中編程。

回答

1

我認爲你正在制定一個過於複雜和複雜的方案。如果找到基於擴展名的MyFileTree就是您想要的,那麼只需使用SortedDictionary<string, MyFileTree>其中字符串是您的擴展名,您將獲得開箱即用的O(log n)檢索機制。

+0

你是對的,但我來自低級別的方法使用c.in c + + STL沒有包含SortedDictionary,所以在這種情況下,我應該使用地圖數據結構和樹。出於效率的原因,樹應該是平衡的,有什麼建議?謝謝!!! – JammingThebBits 2011-02-10 13:08:42

相關問題