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