mirror of
https://github.com/Lendaia/oe-alga-feladatok.git
synced 2026-04-23 04:16:32 +01:00
köszirimcsiii
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
|
||||||
|
|
||||||
namespace OE.ALGA.Adatszerkezetek
|
namespace OE.ALGA.Adatszerkezetek
|
||||||
@@ -183,33 +184,72 @@ namespace OE.ALGA.Adatszerkezetek
|
|||||||
|
|
||||||
public static Halmaz<E> Kruskal<V, E>(SulyozottGraf<V, E> g) where E: SulyozottGrafEl<V>, IComparable
|
public static Halmaz<E> Kruskal<V, E>(SulyozottGraf<V, E> g) where E: SulyozottGrafEl<V>, IComparable
|
||||||
{
|
{
|
||||||
FaHalmaz<E> feszitofa = new FaHalmaz<E>();
|
// //FaHalmaz<E> feszitofa = new FaHalmaz<E>();
|
||||||
|
// Szotar<E, float> legrovidebb = new HasitoSzotarTulcsordulasiTerulettel<E, float>(g.CsucsokSzama);
|
||||||
|
// KupacPrioritasosSor<E> S = new KupacPrioritasosSor<E>(g.ElekSzama, (ez, ennel) => legrovidebb.Kiolvas(ez) < legrovidebb.Kiolvas(ennel));
|
||||||
|
// FaHalmaz<E> A = new FaHalmaz<E>();
|
||||||
|
// Szotar<V, int> vhalmaz = new HasitoSzotarTulcsordulasiTerulettel<V, int>(g.CsucsokSzama);
|
||||||
|
// int i = 0;
|
||||||
|
// g.Csucsok.Bejar(x => {vhalmaz.Beir(x, i++);});
|
||||||
|
// g.Elek.Bejar(e =>
|
||||||
|
// {
|
||||||
|
// legrovidebb.Beir(e, int.MaxValue);
|
||||||
|
// S.Sorba(e);
|
||||||
|
// });
|
||||||
|
|
||||||
|
// while(!S.Ures)
|
||||||
|
// {
|
||||||
|
|
||||||
|
// E minimum = S.Sorbol();
|
||||||
|
|
||||||
|
// if (vhalmaz.Kiolvas(minimum.Honnan) != vhalmaz.Kiolvas(minimum.Hova))
|
||||||
|
// {
|
||||||
|
// A.Beszur(minimum);
|
||||||
|
// g.Csucsok.Bejar(x =>
|
||||||
|
// {
|
||||||
|
// if(vhalmaz.Kiolvas(minimum.Honnan) == vhalmaz.Kiolvas(x))
|
||||||
|
// {
|
||||||
|
// vhalmaz.Beir(x, vhalmaz.Kiolvas(minimum.Hova));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
// return A;
|
||||||
|
|
||||||
Szotar<V, int> vhalmaz = new HasitoSzotarTulcsordulasiTerulettel<V, int>(g.CsucsokSzama);
|
Szotar<V, int> vhalmaz = new HasitoSzotarTulcsordulasiTerulettel<V, int>(g.CsucsokSzama);
|
||||||
|
FaHalmaz<E> A = new FaHalmaz<E>();
|
||||||
|
PrioritasosSor<E> S = new KupacPrioritasosSor<E>(g.ElekSzama, (ez, ennel) => ez.Suly < ennel.Suly);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
g.Csucsok.Bejar(x => {vhalmaz.Beir(x, i++);});
|
g.Csucsok.Bejar(x =>
|
||||||
g.Elek.Bejar(e => {feszitofa.Beszur(e);});
|
|
||||||
|
|
||||||
while(feszitofa.gyoker != null)
|
|
||||||
{
|
{
|
||||||
|
vhalmaz.Beir(x, i++);
|
||||||
|
});
|
||||||
|
g.Elek.Bejar(x =>
|
||||||
|
{
|
||||||
|
S.Sorba(x);
|
||||||
|
});
|
||||||
|
|
||||||
E minimum = feszitofa.gyoker.tart;
|
while(!S.Ures)
|
||||||
feszitofa.Bejar(x =>
|
{
|
||||||
{
|
E minimum = S.Sorbol();
|
||||||
if(minimum.Suly > x.Suly)
|
|
||||||
{
|
|
||||||
minimum = x;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
feszitofa.Torol(minimum);
|
|
||||||
|
|
||||||
if (vhalmaz.Kiolvas(minimum.Honnan) != vhalmaz.Kiolvas(minimum.Hova))
|
if (vhalmaz.Kiolvas(minimum.Honnan) != vhalmaz.Kiolvas(minimum.Hova))
|
||||||
{
|
{
|
||||||
vhalmaz.Beir(minimum.Honnan, vhalmaz.Kiolvas(minimum.Hova));
|
A.Beszur(minimum);
|
||||||
|
int h = vhalmaz.Kiolvas(minimum.Honnan);
|
||||||
|
g.Csucsok.Bejar(x =>
|
||||||
|
{
|
||||||
|
if(h == vhalmaz.Kiolvas(x))
|
||||||
|
{
|
||||||
|
vhalmaz.Beir(x, vhalmaz.Kiolvas(minimum.Hova));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return feszitofa;
|
|
||||||
|
return A;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user