@Override protected Node removeFromFrontier(){
  cleanUpFrontier();
  Node result=frontier.remove();
  updateMetrics(frontier.size());
  setExplored(result);
  return result;
}

@ Override protected Node removeFromFrontier ( ) { cleanUpFrontier ( ) ; Node result = frontier . remove ( ) ; updateMetrics ( frontier . size ( ) ) ; setExplored ( result ) ; return result ; }
cleans up the head of the frontier , removes the first node of a non - explored state from the head of the frontier , adds it to the corresponding explored map , and returns the node .
