Esempio n. 1
0
        public MST <V> Execute()
        {
            var mst = new MST <V>();

            var orderedEdges = _g.AllEdges().OrderBy(e => e.Weight);

            var ds = new DisjointSets <Node <V> >();

            foreach (var edge in orderedEdges)
            {
                var head = ds.Find(edge.Head);
                var tail = ds.Find(edge.Tail);

                if (!head.Equals(tail))
                {
                    mst.Edges.Add(edge);
                    ds.Union(head, tail);
                }
            }

            return(mst);
        }
Esempio n. 2
0
        public MST <V> Execute()
        {
            var mst = new MST <V>();

            return(mst);
        }