\begin {enumerate} \item The adjacency list structure is preferable. Indeed, the adjacency matrix structure wastes a lot of space. It allocates entries for 100,000,000 edges while the graph has only 20,000 edges. \item In general, both structures work well in this case. Regarding the space requirement, there is no clear winner. Note that the exact space usage of the two structures depends on the implementation details. The adjacency matrix structure is much better for operation {\areAdjacent }, while the adjacency list structure is much better for operations {\insertVertex } and {\removeVertex }. \item The adjacency matrix structure is preferable. Indeed, it supports operation {\areAdjacent } in $O(1)$ time, irrespectively of the number of vertices or edges. \end {enumerate}