(a) [5 marks] What is a graph? What is a directed graph? What is a tree? (b) [5 marks] At a party with n =5 people, some people know each other already while others don't. Each of the 5 guests is asked how many friends they have at this party. Two report that they have one friend each. Two other guests have two friends each, and the fifth guest has three friends at the party. Understanding friendship as a symmetric relation, is this network possible? Why, or why not? c) [10 marks] (i) Describe Breadth First Search as an algorithm for undirected graphs. What is its input, what is its output, and what sequence of steps is taken to produce the output from the input? (ii) In the network on the side, apply Breadth First Search to determine a spanning tree with root G and the short- est distances from node G to each of the other nodes in the graph. (iii) Use the Breadth First Search from part (ii) to also determine, for each node x, its possible predecessors on a shortest path from G to x. Use this information to list all shortest paths from G to B