A* search algorithm

algorithm used for pathfinding and graph traversal