While(!WorkList.IsEmpty()){
Head=WorkList.Head();WorkList.RemoveHead();
If(Head.IsCompleteGraph())//O(m^2), m is count of nodes in the graph.
continue;
else {
A node pair M,N in Head has been found that there's no edge from M to N.
Split Head into to subgraph: S1,S2, S1's node set is {X|X=M, or there's edge (X,M) in Head}. S2's node set is {X| X<>M and there's no edge (X,M) in Head}
WorkList.PushHead(S1);
WorkList.PushHead(S2);
}
}