コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }