Beispiel #1
0
        // Gráf.Feszitőfa(): Gráf
        // ---> Gráf típusú feszítőfa metódus
        public Graf Feszitofa()
        {
            // Új, kezdetben él nélküli gráf
            // fa = új Gráf(this.csúcsokSzáma)
            Graf fa = new Graf(this.csucsokSzama);

            // Bejáráshoz szükséges adatszerkezetek
            // bejárt = új üres Halmaz()
            // következők = új üres Sor()
            HashSet <int> bejart     = new HashSet <int>();
            Queue <int>   kovetkezok = new Queue <int>();

            // Tetszőleges, mondjuk 0 kezdőpont
            // következők.hozzáad(0)
            // bejárt.hozzáad(0)
            kovetkezok.Enqueue(0);
            bejart.Add(0);

            //// Szélességi bejárás
            //Ciklus amíg következők nem üres:
            while (kovetkezok.Count != 0)
            {
                // k = következők.kivesz()
                int k = kovetkezok.Dequeue();

                // Ciklus él = this.élek elemei:
                foreach (var el in this.elek)
                {
                    // Ha él.csúcs1 == aktuálisCsúcs:
                    if (el.Csucs1 == this.elek[k].Csucs1)
                    {
                        // Ha bejárt nem tartalmazza él.Csúcs2-t:
                        if (!bejart.Contains(el.Csucs2))
                        {
                            // bejárt.hozzáad(él.csúcs2)
                            // következők.hozzáad(él.Csúcs1)
                            bejart.Add(el.Csucs2);
                            kovetkezok.Enqueue(el.Csucs1);

                            // A fába is vegyük bele az élt
                            // fa.hozzáad(él.Csucs1, él.csúcs2)
                            fa.Hozzaad(el.Csucs1, el.Csucs2);
                        }
                    }
                }
            }
            // Az eredményül kapott gráf az eredeti gráf feszítőfája
            //vissza: fa
            return(fa);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);
            Console.ReadLine();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);
            Console.ReadLine();
            graf.szelbejar(0);
            graf.melysegbejaras(0);
            Console.WriteLine(graf.mohoSzin());
        }
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);
            graf.SzelessegiBejaras(4);
            Console.WriteLine();
            graf.MelysegiBejaras(4);
            Console.WriteLine("\n" + graf.Osszefuggo());
            Console.WriteLine("\n" + graf.Feszitofa());
            Console.ReadLine();
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            graf.szelessegiBejar(1);

            var mst = graf.MinimumSpanningTreePrim(e => e.Tag).ToList();


            Console.WriteLine(graf);
            Console.ReadLine();
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);
            Console.ReadLine();


            graf.Szelessegibejaras(0);
            graf.MelysegiBejaras(0);
            Console.WriteLine(graf.MohoSzinezes());
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            //graf.torol(2);
            Console.WriteLine("szélességi bejárás");
            foreach (var item in graf.selsegBejaras(0))
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            Console.WriteLine("mélységi bejárás");
            foreach (var item in graf.mejsegibelyaras(0))
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();
            Console.WriteLine((graf.bejarhato(0))? "a gráf bejárhtó" : "a gráf nem bejárhtó");
            Console.WriteLine();



            Console.WriteLine(graf);

            graf.feszitoFa();

            Console.WriteLine("fesziton fa");
            Console.WriteLine(graf);

            Console.ReadLine();
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);

            Console.WriteLine("\n");
            Console.WriteLine("Szélességi:");
            graf.SzelessegiBejar(3);
            Console.WriteLine("\n");
            Console.WriteLine("Mélységi:");
            graf.MelysegiBejar(5);
            Console.WriteLine("\n");
            Console.Write("Összefüggőség:");
            if (graf.Osszefuggo() == true)
            {
                Console.WriteLine(" Összefüggő.");
            }
            else
            {
                Console.WriteLine(" Nem összefüggő.");
            }
            Console.WriteLine("\n");
            Console.WriteLine("Feszítőfa: ");
            graf.Feszitofa();
            Console.WriteLine("\n");
            Console.WriteLine("Mohoszinezes: ");
            //graf.Mohoszinezes()...;   HIBÁS

            Console.ReadLine();
        }
Beispiel #9
0
   public Graf feszitofa()
 {
     var fa = new Graf(this.csucsokSzama);
     var bejart = new HashSet<int>();
     var kovetkezok = new Queue<int>();
     kovetkezok.Enqueue(0);
     bejart.Add(0);
     while (kovetkezok.Count > 0)
     {
         var k = kovetkezok.Dequeue();
         Console.WriteLine(this.csucsok[k]);
         foreach (El el in this.elek)
         {
             if ((el.Csucs1 == k) && (!bejart.Contains(el.Csucs2)))
             {
                 bejart.Add(el.Csucs2);
                 kovetkezok.Enqueue(el.Csucs2);
                 fa.Hozzaad(el.Csucs1, el.Csucs2);
             }
         }
     }
     return fa;
 }
Beispiel #10
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine(graf);

            Console.WriteLine("SzélességiBejár");
            graf.SzelessegiBejar(3);

            Console.WriteLine("\nMélységiBejár");
            graf.MelysegiBejar(3);

            Console.WriteLine("\nÖsszefüggő: " + graf.Osszefuggo());
            Console.WriteLine("\nFeszítőfa:\n" + graf.Feszitofa());
            Console.ReadLine();
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine("Szélességi Bejárás: ");
            graf.SzelessegiBejaras(2);
            Console.WriteLine("Mélységi Bejárás: ");
            graf.MelysegiBejaras(3);
            Console.WriteLine("Összefüggő: ");
            graf.Osszefuggo(4);
            Console.WriteLine("Feszítőfa: ");
            graf.FeszitoFa(5);
            Console.WriteLine();
            Console.WriteLine(graf);
            Console.ReadLine();
        }
Beispiel #12
0
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);

            Console.WriteLine("szélesség");
            graf.Szelesseg(4);
            Console.WriteLine("mélység");
            graf.Melyseg(2);
            Console.WriteLine("feszítőfa");
            graf.Feszitofa(4);
            Console.WriteLine("összefüggő");
            graf.Osszefuggo(4);

            Console.WriteLine(graf);
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            var graf = new Graf(6);

            graf.Hozzaad(0, 1);
            graf.Hozzaad(1, 2);
            graf.Hozzaad(0, 2);
            graf.Hozzaad(2, 3);
            graf.Hozzaad(3, 4);
            graf.Hozzaad(4, 5);
            graf.Hozzaad(2, 4);
            graf.Torles(2, 4);


            Console.WriteLine(graf);
            Console.WriteLine("szélességi bejárás 0 kezdőpontból:");
            graf.Szelesseg(0);
            Console.WriteLine("mélységi bejárás 0 kezdőpontból:");
            graf.Melyseg(0);
            Console.WriteLine("a gráf összefüggősége: " + graf.Osszefuggo());
            Console.WriteLine("a gráf feszítőfája:");
            Console.WriteLine(graf.feszitofa().ToString());
            Console.ReadLine();
        }