我真的不关心使用的语言。
我有一个包含世界各地各种航空坐标的大约 84.1k 条目的大型数据库,它们的格式如下:
A1 023 UBL 15.245197 104.865917
A1 024 BUTRA 15.418278 105.596083
A1 025 PAPRA 15.766667 107.183333
A1 026 BATEM 15.931389 107.765556
A1 027 DAN 16.052778 108.198333
A1 028 BUNTA 16.833334 109.395000
A1 029 LENKO 17.416667 110.300000
A1 030 IKELA 18.661667 112.245000
A1 031 IDOSI 19.000000 112.500000
A1 032 CH 22.219542 114.030056
第一个数字是航线(有数百条)。第二个数字是坐标在航线序列方面的位置。第三个是修复的名称,第四个和第五个是坐标本身。
更好的描述方式是高速公路。假设 A1 是高速公路。UBL、BUTRA、PAPRA等……都是出口。023, 024, 025 是您遇到这些出口的顺序(我会在 22 个出口后看到 UBL,因为它是第 23 个然后是 BUTRA,24 然后是 PAPRA,25)。
然而,这些出口通向新的高速公路而不是城市。例如,UBL 出口通向
A1 023 UBL 15.245197 104.865917
G473 006 UBL 15.245197 104.865917
R470 001 UBL 15.245197 104.865917
W1 018 UBL 15.245197 104.865917
W4 031 UBL 15.245197 104.865917
W5 013 UBL 15.245197 104.865917
我的最终目标是使用这些点,使用这些航线找到两个城市之间的最短距离。但是,这不是我的问题。我可以弄清楚,但我不确定使用哪个结构来容纳这个东西。是我的编程老师首先建议我需要某种结构来组织数据。
我在想.. 因为我将有第一个和最后一个点可用,所以要搜索列表,抓住该点通向的所有可能的“高速公路”,使用 A* 之类的东西来找到最短路径,并通过使用一些距离限制来限制分支的数量。但是,如前所述,我不清楚使用哪种数据结构。
任何帮助表示赞赏。