【发布时间】:2012-04-08 23:47:00
【问题描述】:
我是业余程序员,正在学习如何编程。 我从来没有上过任何计算机科学课程,所以我很难解决这个小问题:
class Room {
String name;
ArrayList<Room> neighbors = new ArrayList<Room>();
// constructor with name
// getters
void addNeighbor(Room room) {
neighbors.add(room);
}
}
class Finder {
void findShortestPath(Room start, Room end) {
// ?
}
}
每个房间都有一些邻居。超过 4 个,所以它不像面向矩阵的问题。你得到了结束房间,你必须找到从开始房间开始的最短路径(比较房间的名称)。结果应该是“方式”,如:
开始:厨房
结束:厕所
路径:厨房、客厅、走廊、卧室、卫生间
我认为我必须对房间使用一些递归,并且我认为我应该保存我已经在某个堆栈中的位置。但我真的不知道如何开始。
你们中的一些 CS 人可以帮助我吗?谢谢
【问题讨论】:
-
en.wikipedia.org/wiki/A*_search_algorithm
-
每个房间都需要付费的路线。然后你就可以遍历路线了。
-
@JakobBowyer 只需 1 作为成本 :)
-
@jonmorgan:字母表的第一个字母与它有什么关系:P
-
@mellamokb:名称是“A* 搜索算法”。 Markdown 只是愚蠢。 fixed link 如果有帮助:)
标签: java algorithm shortest-path maze