2013-08-24 55 views
0

我正在编写一个应该模仿一个城市的程序,而我遇到的问题之一是如何存储大量的互连数据。例如,每个Street都有一个direction枚举(NORTH_ONE_WAY,EAST_WEST等)和其他属性。最重要的属性是,每条街道都有一张intersections(与其相交的街道地图以及相交的街道号码)的列表。从这个数据结构中,我应该能够解析它并创建一个可视化文件(稍后介绍并且不是此问题的一部分)。街道和交叉点数据结构

现在的问题是:什么是最好的数据结构类型用于此?显然,关系数据库将是一个不错的选择,但是如果我用C++编写(不是对这个问题的约束,但是C++实现会是一个优点),我应该使用它吗?还有什么其他的数据结构可以为此工作?

回答

0

您描述的数据结构是。参见例如以获得在图上操作的通用库。请注意,这并不意味着您不会使用数据库:数据的存储和内存中的表示方式往往会有所不同。实际表现形式往往取决于您想要对数据做什么。

0

只是不维护每个本地对象的关系。有一个'meta'对象评估关系,它可能会缓存这些关系。

一些细节: 当然,街道应该知道灯笼,漂亮的花园和十字路口。但它是一个交叉点(无所谓)。街道可能在路口有一条单车道或一条双车道(左转)。交叉点由较高的实例维护。

(到左侧车道司机道歉)

+0

你的意思是MAIN ST不应存储与费尔菲尔德的交集和费尔菲尔德不应存放交叉口主...应该有一个单独的对象完全以存储单交集(和其他)? – MattDavBen

+1

@MattDavBen是的。 –