This commit is contained in:
Lendaia Mirai
2025-12-02 22:51:20 +01:00
parent 07419d265b
commit aea3c32877

View File

@@ -1,6 +1,152 @@
using System; using System;
using System.Data.Common;
using Newtonsoft.Json.Converters;
namespace OE.ALGA.Adatszerkezetek namespace OE.ALGA.Adatszerkezetek
{ {
// 10. heti labor feladat - Tesztek: 10_SulyozatlanGrafTesztek.cs public class EgeszGrafEl : GrafEl<int>, IComparable
{
public int Honnan {get;}
public int Hova {get;}
public EgeszGrafEl(int honnan, int hova)
{
Honnan = honnan;
Hova = hova;
}
public int CompareTo(object? obj)
{
EgeszGrafEl ob = (EgeszGrafEl)obj;
if (this.Honnan != ob.Honnan)
{
if(this.Honnan < ob.Honnan)
{
return -1;
}
else
{
return 1;
}
}
else
{
if(this.Hova < ob.Hova)
{
return -1;
}
else if(this.Hova > ob.Hova)
{
return 1;
}
else
{
return 0;
}
}
}
}
public class CsucsmatrixSulyozatlanEgeszGraf : SulyozatlanGraf<int, EgeszGrafEl>
{
int n;
bool[,] M;
public int CsucsokSzama
{
get{ return n; }
}
public int ElekSzama
{
get
{
int elek = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (M[i,j])
{
elek++;
}
}
}
return elek;
}
}
public Halmaz<int> Csucsok
{
get
{
FaHalmaz<int> fahalmaz = new FaHalmaz<int>();
for (int i = 0; i < n-1; i++)
{
fahalmaz.Beszur(i);
}
return fahalmaz;
}
}
public Halmaz<EgeszGrafEl> Elek
{
get
{
FaHalmaz<EgeszGrafEl> fahalmaz = new FaHalmaz<EgeszGrafEl>();
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (M[i,j])
{
EgeszGrafEl egeszgrafel = new EgeszGrafEl(i, j);
fahalmaz.Beszur(egeszgrafel);
}
}
}
return fahalmaz;
}
}
//Halmaz<EgeszGrafEl> Graf<int, EgeszGrafEl>.Elek => throw new NotImplementedException();
public CsucsmatrixSulyozatlanEgeszGraf(int n)
{
this.n = n;
M = new bool[n,n];
}
public Halmaz<int> Szomszedai(int csucs)
{
FaHalmaz<int> fahalmaz = new FaHalmaz<int>();
for (int i = 0; i < n; i++)
{
if (M[csucs, i])
{
fahalmaz.Beszur(i);
}
}
return fahalmaz;
}
public void UjEl(int honnan, int hova)
{
M[honnan, hova] = true;
}
public bool VezetEl(int honnan, int hova)
{
return M[honnan, hova];
}
}
public class GrafBejaras<T>
{
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
}
}
} }