public vertex Combine(float i, vertex source1, vertex source2) { Console.WriteLine("============Adding New Node between============="); Console.WriteLine(" source1= " + source1.Weigth + " source2= " + source2.Weigth); Console.WriteLine("================================="); vertex newComer = new vertex(); newComer.Weigth = i; var s1 = source1.AdjacencyList.OrderBy(x => x.EWeigth); float s1Average = 0; float s1Weight1 = s1.ElementAt(0).EWeigth; float s1Weight2 = s1.ElementAt(1).EWeigth; // Console.WriteLine("w1 " + s1Weight1 + " w2 " + s1Weight2); var s2 = source2.AdjacencyList.OrderBy(x => x.EWeigth); float s2Average = 0; float s2Weigth1 = s2.ElementAt(0).EWeigth; float s2Weigth2 = s2.ElementAt(1).EWeigth; // Console.WriteLine("w1 " + s2Weigth1 + " w2 " + s2Weigth2); s1Average = (s1Weight1 + s1Weight2) / 2; s2Average = (s2Weigth1 + s2Weigth2) / 2; //Console.WriteLine("S1 " + s1Average + " S2 " + s2Average); newComer.addEdge(s1Average, source1); newComer.addEdge(s2Average, source2); source1.addEdge(s1Average, newComer); source2.addEdge(s2Average, newComer); newComer.Parent = null; return(newComer); //this.addNode(newComer); }
public vertex CombineWithLarget(float i, vertex source) { vertex v = new vertex(); v.Weigth = i; Console.WriteLine("=========Attaching Node with largest========="); Console.WriteLine("sourec " + source.Weigth); Console.WriteLine("=============================="); var sorted = source.AdjacencyList.OrderBy(x => x.EWeigth); float average = 0; float s1Weight = sorted.ElementAt(0).EWeigth; float s2Weight = sorted.ElementAt(1).EWeigth; average = (s1Weight + s2Weight) / 2; v.addEdge(average, source); source.addEdge(average, v); v.Parent = null; return(v); //this.addNode(v); }