/*public void TraverseGraph() { * Vertex root = Vfirst; * int i=0,j=0; * Vertex next = root.Adjacent[i]; * * while(j<Nodes) { * * Console.WriteLine("root: " + root.Name); * while(next != null) { * Console.WriteLine(next.Name); * if(next.Name == j) {break;} * next = next.Adjacent[0]; * } * i++; * if((next = root.Adjacent[i]) == null) { * i=0; * j++; * if(root == Vlast) break; * else root = root.Next; * next = root.Adjacent[i]; * * } * } * * }*/ public void DeleteVertex() { Vertex temp1 = null; Vertex temp2 = Vfirst; DateTime time = DateTime.Now; Int32 seed = (Int32)time.Ticks; Random rand = new Random(seed); int j = rand.Next(0, Nodes); //Console.WriteLine("Deleting vertex: " + j); while (temp2 != null) { int i = Decimal.Compare(j, temp2.Name); if (i == 0) { if (temp2 == Vfirst) { temp2 = null; Vfirst = Vfirst.Next; break; } temp1.Next = temp2.Next; temp2 = null; break; } else { temp1 = temp2; temp2 = temp2.Next; } } // Restructuring the Graph Console.WriteLine("Restructuring the Graph..."); temp2 = Vfirst; while (temp2 != null) { temp2.DeleteAdjacentEntry(j); temp2 = temp2.Next; } Edge e1 = null; Edge e2 = Efirst; Edge temp = null; while (e2 != null) { int v1 = Decimal.Compare(j, e2.v1.Name); int v2 = Decimal.Compare(j, e2.v2.Name); if ((v1 == 0) || (v2 == 0)) { if (e2 == Efirst) { temp = e2; e2 = e2.Next; Efirst = Efirst.Next; temp = null; } else { temp = e1; e1.Next = e2.Next; e2 = e2.Next; } } else { e1 = e2; e2 = e2.Next; } } }