// 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); }
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(); }
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(); }
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(); }
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()); }
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(); }
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(); }
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; }
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(); }
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(); }
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(); }