我正在开发一个项目,其中要求是检索特定源和目标的地图相关数据。在每个将来的请求中,将使用已经获取的已缓存的信息。但是现在,如果源或目标发生更改,则将重建map,其中包含旧的源和目标。
我的一些问题是:
使用哪种数据结构,以便轻松有效地查找源和目的地之间的所有中间节点。
我的内存资源有限,因此无法在内存中使用非常大的DSC。
我正在考虑将源和目的地之间的路线数据存储为列表但是这可能使搜索成为线性搜索,我想不惜任何代价避免。如果构造用于存储路径信息的结构存在一些开销,则可以,但搜索必须快速简便。我使用java作为编程语言。
提前感谢您的任何帮助
答案 0 :(得分:1)
您应该将地图表示为图表。每个位置都会列出可以到达的所有紧邻的地方。这样,当您获得源和目标时,您可以执行DFS或BFS来确定从源到目的地的所有路径和所有中间节点。
由于您具有缓存给定源和目标之间的路由,因此下次为不同的源或目标构建数据时,您可以尝试使用缓存的数据。