From 45adc0f064b7f0038232d15ac7b22c2d6562d438 Mon Sep 17 00:00:00 2001 From: Lendaia Mirai Date: Fri, 5 Dec 2025 15:18:06 +0100 Subject: [PATCH] sendluckpls --- ALGA/Adatszerkezetek/10_SulyozotlanGraf.cs | 45 +++++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/ALGA/Adatszerkezetek/10_SulyozotlanGraf.cs b/ALGA/Adatszerkezetek/10_SulyozotlanGraf.cs index ccb2cd3..d636429 100644 --- a/ALGA/Adatszerkezetek/10_SulyozotlanGraf.cs +++ b/ALGA/Adatszerkezetek/10_SulyozotlanGraf.cs @@ -139,14 +139,49 @@ namespace OE.ALGA.Adatszerkezetek return M[honnan, hova]; } } - public class GrafBejaras + public static class GrafBejaras { public static Halmaz SzelessegiBejaras(Graf g, V start, Action muvelet) where V : IComparable { - FaHalmaz fahalmaz = new FaHalmaz(); - int j = 0; - g.Csucsok.Bejar(muvelet); - //eheheheee + LancoltSor sor = new LancoltSor(); + FaHalmaz fahalmaz = new FaHalmaz(); + sor.Sorba(start); + fahalmaz.Beszur(start); + while(!sor.Ures) + { + V k = sor.Sorbol(); + muvelet(k); + FaHalmaz halmaz = (FaHalmaz)g.Szomszedai(k); + halmaz.Bejar(x => + { + if (!fahalmaz.Eleme(x)) + { + sor.Sorba(x); + fahalmaz.Beszur(x); + } + }); + } + + return fahalmaz; + } + public static Halmaz MelysegiBejaras(Graf g, V start, Action muvelet) where V : IComparable + { + Halmaz fahalmaz = new FaHalmaz(); + MelysegiBejarasRekurzio(g, start, fahalmaz, muvelet); + return fahalmaz; + + } + private static void MelysegiBejarasRekurzio(Graf g, V k, Halmaz F, Action muvelet) where V: IComparable + { + F.Beszur(k); + FaHalmaz halmaz = (FaHalmaz)g.Szomszedai(k); + halmaz.Bejar(x => + { + if (!F.Eleme(x)) + { + MelysegiBejarasRekurzio(g, x, F, muvelet); + } + }); } } } \ No newline at end of file