Esempio n. 1
0
        public List <int> ZnajdzDrogeRozszerzajaca(int zbior1, int zbior2)
        {
            Drzewo <int> d;
            GrafNDzielny g = new GrafNDzielny(this);

            //g.UsunKrawedzieWychodzaceZeZbioru(zbior2);

            Drzewo <int> .Wierzcholek <int> w = null;
            foreach (int v1 in WierzcholkiZbioru(zbior1))
            {
                if (g.Skojarzenie(v1).HasValue)
                {
                    continue;
                }

                d = new Drzewo <int>();
                d.DodajKorzen(v1);

                w = g.SzukajNieskojarzonego(d.korzen, zbior2);

                if (w != null)
                {
                    break;
                }
            }
            if (w != null)
            {
                return(w.SciezkaDoKorzenia());
            }
            else
            {
                return(null);
            }
        }