예제 #1
0
        /// <summary>
        /// Duomenu ivedimas is konsoles
        /// </summary>
        /// <returns>Suformuotas grafas</returns>
        static Grafas DuomenuIvedimas()
        {
            Grafas duomenys = new Grafas();

            Console.WriteLine("Iveskite grafo virsuniu sk.: ");
            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Iveskite {0} virsunes kaimynes, atskirdami " +
                                  "jas tarpo simboliu: ", i + 1);

                var        kaimynes         = Console.ReadLine();
                string[]   parts            = kaimynes.Split(' ');
                List <int> gretimosVirsunes = new List <int>();

                foreach (var part in parts)
                {
                    gretimosVirsunes.Add(int.Parse(part));
                }

                duomenys.GretimumoStrukturaAdd(i + 1, gretimosVirsunes);
            }

            return(duomenys);
        }
예제 #2
0
        /// <summary>
        /// Metodas, sukuriantis naują identišką grafą
        /// </summary>
        /// <param name="originalus">Originalus grafas</param>
        /// <returns>Originalaus grafo kopija</returns>
        static Grafas KopijuotiGrafa(Grafas originalus)
        {
            Grafas kopija = new Grafas();

            foreach (var rysys in originalus.gretimumoStruktura)
            {
                kopija.GretimumoStrukturaAdd(rysys.Key, rysys.Value);
            }
            return(kopija);
        }
예제 #3
0
        /// <summary>
        /// Įvedimas kode testavimui supaprastinti
        /// </summary>
        /// <returns>Suformuotas grafas</returns>
        static Grafas HardcodedIvedimas()
        {
            Grafas duomenys = new Grafas();

            duomenys.GretimumoStrukturaAdd(1, new List <int>()
            {
                3, 5, 2
            });
            duomenys.GretimumoStrukturaAdd(2, new List <int>()
            {
                1, 6
            });
            duomenys.GretimumoStrukturaAdd(3, new List <int>()
            {
                1, 4, 6
            });
            duomenys.GretimumoStrukturaAdd(4, new List <int>()
            {
                3, 6
            });
            duomenys.GretimumoStrukturaAdd(5, new List <int>()
            {
                1
            });
            duomenys.GretimumoStrukturaAdd(6, new List <int>()
            {
                2, 3, 4
            });

            return(duomenys);
        }
예제 #4
0
        /// <summary>
        /// Metodas, suformuojantis indukuotąjį grafą
        /// </summary>
        /// <param name="originalus">Originalus grafas</param>
        /// <param name="virsuniuPoaibis">Indukuojančių viršūnių poaibis</param>
        /// <returns>Indukuotasis grafas</returns>
        static Grafas FormuotiNaujaGrafa(Grafas originalus, List <int> virsuniuPoaibis)
        {
            Grafas naujas = new Grafas();

            foreach (var rysys in originalus.gretimumoStruktura)
            {
                if (virsuniuPoaibis.Contains(rysys.Key))
                {
                    naujas.GretimumoStrukturaAdd(rysys.Key,
                                                 RastiGretimasVirsunes(rysys.Value,
                                                                       virsuniuPoaibis));
                }
            }
            return(naujas);
        }