sendluckpls

This commit is contained in:
Lendaia Mirai
2025-12-05 15:18:06 +01:00
parent d10502e946
commit 45adc0f064

View File

@@ -139,14 +139,49 @@ namespace OE.ALGA.Adatszerkezetek
return M[honnan, hova]; return M[honnan, hova];
} }
} }
public class GrafBejaras<T> public static class GrafBejaras
{ {
public static Halmaz<V> SzelessegiBejaras<V, E>(Graf<V, E> g, V start, Action<V> muvelet) where V : IComparable public static Halmaz<V> SzelessegiBejaras<V, E>(Graf<V, E> g, V start, Action<V> muvelet) where V : IComparable
{ {
FaHalmaz<int> fahalmaz = new FaHalmaz<int>(); LancoltSor<V> sor = new LancoltSor<V>();
int j = 0; FaHalmaz<V> fahalmaz = new FaHalmaz<V>();
g.Csucsok.Bejar(muvelet); sor.Sorba(start);
//eheheheee fahalmaz.Beszur(start);
while(!sor.Ures)
{
V k = sor.Sorbol();
muvelet(k);
FaHalmaz<V> halmaz = (FaHalmaz<V>)g.Szomszedai(k);
halmaz.Bejar(x =>
{
if (!fahalmaz.Eleme(x))
{
sor.Sorba(x);
fahalmaz.Beszur(x);
}
});
}
return fahalmaz;
}
public static Halmaz<V> MelysegiBejaras<V,E>(Graf<V, E> g, V start, Action<V> muvelet) where V : IComparable
{
Halmaz<V> fahalmaz = new FaHalmaz<V>();
MelysegiBejarasRekurzio(g, start, fahalmaz, muvelet);
return fahalmaz;
}
private static void MelysegiBejarasRekurzio<V,E>(Graf<V,E> g, V k, Halmaz<V> F, Action<V> muvelet) where V: IComparable
{
F.Beszur(k);
FaHalmaz<V> halmaz = (FaHalmaz<V>)g.Szomszedai(k);
halmaz.Bejar(x =>
{
if (!F.Eleme(x))
{
MelysegiBejarasRekurzio(g, x, F, muvelet);
}
});
} }
} }
} }