public Graph gadgetGraph(List<double> sp)
{
Graph gg = new Graph (this.numV * 2);
for (int u = 0; u < this.numV; ++u)
{
Node node = new Node (u + this.numV, sp [u]);
gg.adj [u].Add (node);
Node rNode = new Node (u, sp [u]);
gg.rAdj [u + this.numV].Add (rNode);
}
for (int u = 0; u < this.numV; ++u)
{
foreach (Node node in this.adj[u])
{
Node nnode = new Node (node.id + this.numV, node.pp);
gg.adj [u + this.numV].Add (nnode);
Node rnNode = new Node (u + this.numV, node.pp);
gg.rAdj [node.id + this.numV].Add (rnNode);
}
}
return gg;
}