我正在尝试将A *搜索树实现到项目中,但我不了解如何创建我的启发式类。我已经在我的图上成功实现了Dijkstra和Prim的函数,但是我对如何创建启发式类并调用astar函数感到茫然。任何帮助将不胜感激,这是我的完整代码到目前为止:
Vertices:
S,H,R,C,L
Edges
(S,C,39)
(R,S,86)
(L,S,74)
(C,H,55)
(R,C,126)
(L,C,68)
(R,H,111)
(L,R,56)
(H,L,97)
(S,H,27)
这是我将要呈现的示例输入文件:
class distance_heuristic : public astar_heuristic<Graph, double> {
public:
distance_heuristic(string goal)
: m_goal(goal) {}
double operator()(string u) {
return tempMap[m_goal].distance;
}
private:
string m_goal;
map<string, Vertex> tempMap;
};
我对启发式课程的尝试:
usersDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(Datasnapshot snap2 : dataSnapshot.getChildren()){
String userId = snap2.getKey();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});