Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在GPS上实现A*算法的开闭列表_Java_Algorithm_Gps_Path Finding_A Star - Fatal编程技术网

Java 在GPS上实现A*算法的开闭列表

Java 在GPS上实现A*算法的开闭列表,java,algorithm,gps,path-finding,a-star,Java,Algorithm,Gps,Path Finding,A Star,我目前正在尝试创建一个GPS系统,它可以接收地图数据,并在最短距离内找到起点和终点之间的最短距离 该程序将获取顶点(每个顶点都包含一个标签以及x和y坐标)和边(详细说明从哪条道路到哪条道路以及距离),然后将其存储在邻接列表中 我已经决定使用A*算法,并尝试遵循这一点,但我不确定如何实现打开和关闭列表。一个简单的向量就足够了,还是我需要使用其他东西,比如优先级队列?这里的开放列表用于获取次优或最短路径,因此您可以使用优先级队列 封闭列表只是为了丢弃您不想进一步使用的方块,您可以使用哈希表实现封闭列

我目前正在尝试创建一个GPS系统,它可以接收地图数据,并在最短距离内找到起点和终点之间的最短距离

该程序将获取顶点(每个顶点都包含一个标签以及x和y坐标)和边(详细说明从哪条道路到哪条道路以及距离),然后将其存储在邻接列表中


我已经决定使用A*算法,并尝试遵循这一点,但我不确定如何实现打开和关闭列表。一个简单的向量就足够了,还是我需要使用其他东西,比如优先级队列?

这里的开放列表用于获取次优或最短路径,因此您可以使用优先级队列


封闭列表只是为了丢弃您不想进一步使用的方块,您可以使用哈希表实现封闭列表,以便您可以在O(1)中找到是否丢弃该方块

谢谢你的好答案,但是我以前试过做一个散列图,我现在很讨厌。我只是想让这个系统工作起来,然后在以后改进它。打开和关闭列表是否可以使用向量?是的,它们都可以使用向量完成,您必须遍历
打开向量
,并找到最短路径,同样,还需要遍历
关闭向量
,以检查丢弃的方。