public void CheckIfReachable() {
int[] temp = new int[Nodes];
Vertex t1 = Vfirst;
Console.WriteLine("Making all vertices reachable...");
while(t1 != null) {
for(int i=0;i<t1.Num_Edges;i++) {
if(temp[t1.Adjacent[i].Name] == 0)
temp[t1.Adjacent[i].Name]=1;
}
t1 = t1.Next;
}
for(int v2=0;v2<Nodes;v2++) {
if(temp[v2]==0) { //this vertex is not connected
DateTime time = DateTime.Now;
Int32 seed = (Int32)time.Ticks;
Random rand = new Random(seed);
int v1;
while((v1 = rand.Next(0,Nodes))==v2); //select a random node, also avoid self-loops
BuildEdge(v1,v2);
temp[v2]=1;
}
}
}