import java.util.List;
import java.util.ArrayList;

/* Implements an adjacency list using linked lists. */

class GraphAdjacencyList<T> {

  private List<Node<T>> adjacencyList;

  public GraphAdjacencyList(int size) {
    this.adjacencyList = new ArrayList<Node<T>>(size);
  }

  /* Return true if firstNode points to secondNode. */
  protected boolean hasDirectedEdge(T firstNode, T secondNode) {
    return true;
  }

  /* Return true if both firstNode and secondNode point to each other. */
  protected boolean hasUndirectedEdge(T firstNode, T secondNode) {
    return true;
  }

  /* Add an edge from firstNode to secondNode. */
  protected void addDirectedEdge(T firstNode, T secondNode) {
    return;
  }

  /* Finds the linked list starting with node value findData. */
  private Node getNode(T findData) {
    Node current = this;

    while(current.data != findData) {
      current = current.next;
    }

    return current;
  }
}

@@ -702,24 +702,307 @@
 eturn;%0A  %7D%0A%0A
+  /* Remove the edge from firstNode to secondNode. */%0A  protected void removeDirectedEdge(T firstNode, T secondNode) %7B%0A    return;%0A  %7D%0A%0A  /* Remove the edge between both firstNode and secondNode. */%0A  protected void removeUndirectedEdge(T firstNode, T secondNode) %7B%0A    return;%0A  %7D%0A%0A
   /* Finds t

Add stubs for addEdge methods for graph adjacency list.