4.4  If we assume that the comparison is transitive, then we can always sort the nodes using it, and choose the node that is at the top of the sort.  The property that we give up is run-time efficiency:  a priority queue is not as efficient when we only have a comparison operator, not a numeric ranking.  Happily, I didn't require you to figure that out.

4.5  Going between Rimnicu Vilcea and Lugoj is one example.  The shortest path is the Southern one, through Medadia, Dobreta and Craiova.  But a greedy search using the straight-line heuristic starting in Rimnicu Vilcea will start the wrong way, heading to Sibiu.  Starting at Lugoj, the heuristic will correctly lead us to Mehadia, but then a greedy search will return to Lugoj, and oscillate forever between those nodes.

5.1