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];
}
}
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
{
FaHalmaz<int> fahalmaz = new FaHalmaz<int>();
int j = 0;
g.Csucsok.Bejar(muvelet);
//eheheheee
LancoltSor<V> sor = new LancoltSor<V>();
FaHalmaz<V> fahalmaz = new FaHalmaz<V>();
sor.Sorba(start);
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);
}
});
}
}
}