地铁的c#数据结构

本文关键字:数据结构 地铁 | 更新日期: 2023-09-27 18:01:53

在应用程序中存储地铁数据的最佳方法是什么?

数据包括地铁站位置、地铁站之间的隧道长度、绘制时标签的对齐方式、绘制隧道时绘制的弧线类型、路口等…

现在我正在考虑一个严重扩展的图,但是(只是好奇)也许有更方便的东西?(显然,地铁模型用于寻路和路由)

地铁的c#数据结构

我建议创建不同的数据模型来处理问题的不同部分(因为您有不同的边界上下文)。

使用有向图是很简单的。您应该以一种非常抽象的方式实现它,这样您就可以重用体面的、经过验证的寻径算法。根据您选择的算法(A*可能是一个很好的候选),您的数据模型需要针对该算法进行优化。在A*的情况下,首先定义一个有意义的、实际相关的地铁站拓扑排序(开始时欧式距离很好,但通过分析数据的性质并对其进行调优,您可能会在性能上获得可观的提升)。另一个方面是使用缓存进行各种计算,并迅速丢弃毫无疑问的站点。

对于表示,您希望创建图形的另一个模型,该模型可以携带与表示相关的所有信息(颜色,文本等)。