Using a Hash Table
store adjacency info in the hash table.
if ? vi, vj ? ? E, perform
If the complementary graph is sparse (the graph is very dense), then store the complement of the edges in the hash table.
if ? vi, vj ? ? E, perform
In either case, the keys are edges, and the values tell whether or not the edge is part of the graph.