Files
ALGA/ALGA/Adatszerkezetek/12_SulyozottGraf.cs
Lendaia Mirai d82decbfa2 whwwwwwww
2025-12-10 22:37:56 +01:00

112 lines
2.8 KiB
C#

using System;
namespace OE.ALGA.Adatszerkezetek
{
public class SulyozottEgeszGrafEl : EgeszGrafEl, SulyozottGrafEl<int>
{
public float Suly {get;}
public SulyozottEgeszGrafEl(int honnan, int hova, float suly) : base(honnan, hova)
{
Suly = suly;
}
}
public class CsucsmatrixSulyozottEgeszGraf : SulyozottGraf<int, SulyozottEgeszGrafEl>
{
int n;
float[,] 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] != null)
{
elek++;
}
}
}
return elek;
}
}
public CsucsmatrixSulyozottEgeszGraf(int n)
{
this.n = n;
M = new float[n,n];
}
public Halmaz<int> Csucsok
{
get
{
FaHalmaz<int> fahalmaz = new FaHalmaz<int>();
for (int i = 0; i < n; i++)
{
fahalmaz.Beszur(i);
}
return fahalmaz;
}
}
public Halmaz<SulyozottEgeszGrafEl> Elek
{
get
{
FaHalmaz<SulyozottEgeszGrafEl> fahalmaz = new FaHalmaz<SulyozottEgeszGrafEl>();
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (M[i,j] != null)
{
SulyozottEgeszGrafEl egeszgrafel = new SulyozottEgeszGrafEl(i, j, M[i,j]);
fahalmaz.Beszur(egeszgrafel);
}
}
}
return fahalmaz;
}
}
public float Suly(int honnan, int hova)
{
if(M[honnan, hova] != null)
{
return M[honnan, hova];
}
else
{
throw new NincsElKivetel();
}
}
public Halmaz<int> Szomszedai(int csucs)
{
FaHalmaz<int> fahalmaz = new FaHalmaz<int>();
for (int i = 0; i < n; i++)
{
if (M[csucs, i] != null)
{
fahalmaz.Beszur(i);
}
}
return fahalmaz;
}
public void UjEl(int honnan, int hova, float suly)
{
M[honnan, hova] = suly;
}
public bool VezetEl(int honnan, int hova)
{
return (M[honnan, hova]!= null);
}
}
}