Beispiel #1
0
        private void prime(int index)
        {
            IVector <int> vertexSet = Vector <int> .VectorFactory();

            vertexSet.Insert(index);
            IVector <int> vertexCutSet = CaluCutSet(index);

            Status(index, VStatus.Visited);
            while (true)
            {
                Tuple <int, int> edge = MimimumEdge(vertexSet, vertexCutSet);
                if (edge == null)
                {
                    break;
                }
                vertexSet.Insert(edge.Item2);
                vertexCutSet.Remove(vertexCutSet.Find(edge.Item2));
                Status(edge.Item2, VStatus.Visited);
                if (Exist(edge.Item1, edge.Item2))
                {
                    Status(edge.Item1, edge.Item2, EStatus.Tree);
                }
                else
                {
                    Status(edge.Item2, edge.Item1, EStatus.Tree);
                }
            }
        }
Beispiel #2
0
 public void TestFind()
 {
     _vector.Insert(new Coordinate()
     {
         X = 0, Y = 0
     });
     Assert.AreEqual(_vector.Find(new Coordinate()
     {
         X = 0, Y = 0
     }), 0);
 }
Beispiel #3
0
 public override int Find(T other)
 {
     return(_vector.Find(other));
 }