2013-11-26 24 views
0

人們談論trees,是的,我可以理解treetraversing它的概念conceptually。同樣有趣的是,在binary search tree的搜索時間是O(log N)使用c樹中的目錄(文件夾)操作#

現在,我有一定的folders in my system的文件結構是not going to be modified除了new files are added often

我可以想象,如果我建立一個代表文件夾結構的二叉搜索樹,我可以很好地使用O(log N)中的文件名進行搜索。我知道這可以通過內置的.NET方法非常有效地完成,但我正在嘗試查看使用該樹的真實生活用例場景。

MSDN here告訴'Trees are common data structures because many real-world problems exhibit tree-like behavior. For example, any sort of hierarchical relationship among people, things, or objects can be modeled as a tree.但問題是我不能將上述要求建模爲樹?

問題是這樣的:

I cannot visualize how to connect the BST concept and my requirement。我看到的每個二叉樹樣本,都是通過向節點添加一些簡單的整數並對其進行解釋來解釋的。

  1. 如何構建目錄遍歷樹? (請 - 一些代碼或僞代碼,不只是理論上的答案!)

  2. 如何存儲已建樹?

(至於從我的文件夾結構,讓所有的文件,我用我的代碼here

+0

SO不是這類問題的地方。常見問題解答將幫助您爲本網站選擇正確的問題。我會嘗試Programmers.SE。 –

回答

1

我認爲你是從根本上混淆兩個不相關的概念。樹是具有與其關聯的分層結構的數據結構。二叉搜索樹是一種樹形的數​​據結構,但其形狀受到更多限制。每個節點必須有零個,一個或兩個孩子。每個節點在其中存儲一些密鑰,並且該樹具有以下屬性:對於每個節點,其左子樹中的節點中的所有密鑰都小於原始節點的密鑰,並且其右子樹中的節點中的所有密鑰都大於原始節點的密鑰。

儘管您可以使用一些技巧來將目錄樹表示爲二叉搜索樹,但這樣做會被誤導,因爲這是該作業的錯誤工具。目錄樹可以具有任意大的分支因子,並且不以任何排序順序存儲。我建議先閱讀一般樹,而不僅僅是二叉搜索樹,以便更好地理解區別以及有關如何表示任意樹結構的更多信息。至於如何實際構建樹 - 您可能需要查看深度優先搜索或廣度優先搜索算法,這可能是探索目錄結構和構建目錄樹的極好候選者。

希望這會有所幫助!

相關問題