using System; namespace OE.ALGA.Adatszerkezetek { public class SulyozottEgeszGrafEl : EgeszGrafEl, SulyozottGrafEl { public float Suly {get;} public SulyozottEgeszGrafEl(int honnan, int hova, float suly) : base(honnan, hova) { Suly = suly; } } public class CsucsmatrixSulyozottEgeszGraf : SulyozottGraf { 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 Csucsok { get { FaHalmaz fahalmaz = new FaHalmaz(); for (int i = 0; i < n; i++) { fahalmaz.Beszur(i); } return fahalmaz; } } public Halmaz Elek { get { FaHalmaz fahalmaz = new FaHalmaz(); 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 Szomszedai(int csucs) { FaHalmaz fahalmaz = new FaHalmaz(); 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); } } }