數據結構,我想打一個無限拼接地圖,從(-max_int,-max_int)
直到(max_int,max_int)
,所以我會做一個基本結構:chunk
,每個chunk
包含char tiles[w][h]
並且還int x, y
座標,因此,例如h=w=10
所以tile(15,5)
在chunk(1,0)
上(5,5) coordinate
,並tile(-25,-17)
是chunk(-3,-2)
上(5,3)
等。現在可以有任何數量的塊,我需要將它們存儲起來,並且在O(logn)
或更好的情況下(O(1)
如果可能的話,但它不是..)很容易訪問它們。應該很容易:添加,刪除(不必)和查找。那麼我應該使用什麼數據結構?平鋪地圖
Q
平鋪地圖
1
A
回答
3
0
所以所有的空間splited成塊(矩形集羣)。通常問題是將數據存儲爲稀疏(由於已經實現了集羣)矩陣。爲什麼不使用兩級字典式的容器? rb-tree by row index其中value是按列索引的rb-tree。或者如果你很幸運,你可以使用散列來獲得你的O(1)。在這兩種情況下,如果找不到行,則將其分配到容器中,然後創建新容器作爲值,但最初僅使用單個塊。當然,在現有的行上分配新的塊會比新的更快,我想這是這種方法唯一的問題。
+1
這會工作,但內存成本可能很大。對於這些類型的問題,它們是更好的空間數據結構。 – Mranz
相關問題
- 1. LibGDX:從平鋪到平鋪渲染平鋪地圖
- 2. 安卓平鋪地圖
- 3. Pygame中的平鋪地圖
- 4. Java - 平鋪地圖對象
- 5. Android定製平鋪地圖
- 6. 平鋪2d地圖指南
- 7. SFML平臺與地圖平鋪碰撞
- 8. 平鋪式地圖編輯器:等角平鋪側的大小
- 9. 平鋪地圖上的多平鋪對象
- 10. 3d平鋪地形
- 11. 平鋪圖案
- 12. Cocos2d平鋪地圖添加精靈
- 13. 平鋪地圖(json)碰撞失敗
- 14. 在cocos2d-iphone中優化平鋪地圖
- 15. Android中的等距平鋪地圖
- 16. 谷歌地圖:平鋪覆蓋
- 17. 用Monogame繪製平鋪地圖
- 18. 在Android上平鋪地圖疊加層
- 19. 平鋪地圖和真實物體
- 20. AndEngine更改TMX平鋪地圖動態
- 21. 基於平鋪矢量的地圖iOS
- 22. Android LibGDX:平鋪地圖封面動畫
- 23. 平鋪編輯器地圖優化
- 24. iOS谷歌地圖Api平鋪疊加
- 25. Pygame中的非平鋪地圖
- 26. Slick2D +平鋪無法載入地圖
- 27. LibGDX - 平鋪不呈現整個地圖
- 28. 如何創建平鋪地圖?
- 29. WPF:平鋪圖像
- 30. iphone平鋪圖像
這很難遵循。也許你可以提供一個結構/類和一個公式來轉換塊,以瓷磚協調。 – 2011-08-27 18:41:49
它只是一堆用X對象,y座標(塊),現在我需要存儲它們方便地訪問他們 – Vladp