我正试图想出一种在我的程序中表示街道网络的方法,只是这样一个简单的方法: 主要街道A有几个交叉点,比如a,b,c,d。 另一条街道B与A平行。所以看起来像这样:
----|a|---|b|----|c|-------------------
Street A
----|a|---|b|-----------------|d|------
| | | | | |
| | | | | |
----|a|---|b|-----------------| |------
Street B
------------------------------|d|------
我想也许我可以创建一个Street
类来代表两条主要街道,每条街道都有两个交叉点列表:左和右。
但我可以说,当我向网络添加更多街道时,这将变得非常混乱。
所以建议非常感谢! (可能无关紧要,但我正在使用Java)
编辑1:此外,对于此项目,允许的流量方向非常重要 - 即,数据结构应该能够判断街道是单向还是单向 - 方向在哪个方向。我应该能够从数据结构中轻松访问这些信息。
答案 0 :(得分:1)
创建一个Street类和一个Intersection类。 Intersection类将作为节点运行,并引用与其连接的街道。这可能是您可以使用的最灵活的设计。也许可以为街道终点添加(x,y)坐标。
答案 1 :(得分:0)
街道系统非常适合GraphDB
。街道由边和交叉点表示为节点。也许像Neo4j
这样的东西可以满足你的需求。如果你不需要那么重的东西,还有其他记忆选择。