astar
pub fn astar<S: SearchProblem>(s: &mut S) -> Option<VecDeque<S::Node>> where S::Node: Clone + Debug, S::Cost: Debug,