数据结构,我想打一个无限拼接地图,从(-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. 安卓平铺地图
- 2. Android定制平铺地图
- 3. SFML平台与地图平铺碰撞
- 4. 平铺图案
- 5. 在Android上平铺地图叠加层
- 6. AndEngine更改TMX平铺地图动态
- 7. 谷歌地图:平铺覆盖
- 8. iOS谷歌地图Api平铺叠加
- 9. Cocos2d平铺地图添加精灵
- 10. 平铺地图(json)碰撞失败
- 11. 如何创建平铺地图?
- 12. LibGDX - 平铺不呈现整个地图
- 13. WPF:平铺图像
- 14. iphone平铺图像
- 15. XtraTabbedMdiManager布局(平铺垂直,水平平铺,平铺水平)
- 16. 平铺移动平铺
- 17. WP7本地更新平铺
- 18. libGDX创建平铺地图的小地图
- 19. 为什么Bing地图图钉图标有平铺图像? WP7
- 20. LibTIFF.NET将平铺的OJPEG转换为单个平铺图像
- 21. 图像平铺注册
- 22. WPF中的平铺图像
- 23. Android位图平铺由X
- 24. 平铺贴图OpenGL C++
- 25. 地图不加载,只显示平铺视图?
- 26. 2轴滚动平铺“地图”视图(TiledScrollView)
- 27. 在Google地图顶部绘制自定义地图平铺图像(.png) - Android
- 28. SDL平铺和雪碧渲染地形
- 29. 平铺在
- 30. 水平平铺背景
这很难遵循。也许你可以提供一个结构/类和一个公式来转换块,以瓷砖协调。 – 2011-08-27 18:41:49
它只是一堆用X对象,y坐标(块),现在我需要存储它们方便地访问他们 – Vladp