我正在尋找一種有效的方式來表示和檢索地理關係,例如, districts->明─> USA。這應該適應任何層次的層次,例如。地區 - >地區 - >州 - >大區域(東/西/南/北) - >美國。用於表示區域 - >州 - >國家關係的高效數據結構
我的要求是
- 我大多控制在最低水平運行 - 因此讓所有的人快應該是第一優先。持續時間是首選。
- 然後,我想要在州級執行彙總eg.combine區數據(因此可以輕鬆獲得所有孩子的節點) - 這是第二個標準。
- 在一個級別的順序並不重要 - 例如。對於NC,我不介意我是否第一次得到羅利或法耶特維爾。
正如你幾乎已經猜到 - A 樹數據結構適合於邏輯上的問題。但我找不到能有效獲得所有葉子的方法。我可以檢查一個節點是否在O(log n)時間葉,但我已檢查每個節點。
我已經看過B,B +樹,但我不明白的是他們使用某種順序如升序或降序來維護它們的順序。
我的直覺是應該有效的解決方案,因爲 - windows或任何文件系統都這樣做。文件 - >文件夾 - >大文件夾 - > C - >我的電腦。同樣這種計算必須在數據挖掘中說可以用於聚類(我記得讀過這樣的東西)
任何在這方面的線索將不勝感激。
感謝
您能更準確地描述您想要對結構做什麼嗎?你的#1並不完全清楚;正如Welbog所說,你不能在恆定時間內檢索n個項目。而你的「檢查一個節點是否在O(log n)葉」似乎暗示你正在做一些事情,而不是從葉到根的直接聚合。 – 2009-06-02 14:47:55
如果n個項目已存儲在緩存集合中,那麼可以在恆定時間內檢索n個項目 - 這對於節點的所有子項的常見情況很有意義,例如,請參閱下面的答案。 – mikera 2010-06-15 16:28:41