这听起来像A*算法的经典案例,但如果你不能实现Dijkstra,我看不到你实现A*.
编辑:这假设您有一个很好的方法来估计(但不要过高估计)从一个节点到目标的成本.
edit2:您在邻接列表表示方面遇到问题.我发现如果你为地图中的每个顶点创建一个对象,那么当有链接时你可以直接链接到这些对象.所以你所拥有的实际上是一个对象列表,每个对象都包含一个指针列表(或引用,如果你愿意)到它们所邻接的节点.现在,如果要访问新节点的路径,只需按照链接即可.确保维护一个给定顶点所遵循的路径列表,以避免无限循环.
至于每次需要访问某些内容时查询数据库,无论如何都需要这样做.您最好的希望是只在需要时查询数据库...这意味着只有在想要获取图表中特定边缘的信息时才查询它,或者图表中的一个脊椎的所有边缘(后者可能是是一个更好的路线)所以你只需要偶尔点击缓慢的I/O而不是一次性的巨大块.
归档时间: |
|
查看次数: |
6372 次 |
最近记录: |