/// <summary> /// Duomenu ivedimas is konsoles /// </summary> /// <returns>Suformuotas grafas</returns> static Grafas DuomenuIvedimas() { Grafas duomenys = new Grafas(); Console.WriteLine("Iveskite grafo virsuniu sk.: "); int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { Console.WriteLine("Iveskite {0} virsunes kaimynes, atskirdami " + "jas tarpo simboliu: ", i + 1); var kaimynes = Console.ReadLine(); string[] parts = kaimynes.Split(' '); List <int> gretimosVirsunes = new List <int>(); foreach (var part in parts) { gretimosVirsunes.Add(int.Parse(part)); } duomenys.GretimumoStrukturaAdd(i + 1, gretimosVirsunes); } return(duomenys); }
/// <summary> /// Metodas, sukuriantis naują identišką grafą /// </summary> /// <param name="originalus">Originalus grafas</param> /// <returns>Originalaus grafo kopija</returns> static Grafas KopijuotiGrafa(Grafas originalus) { Grafas kopija = new Grafas(); foreach (var rysys in originalus.gretimumoStruktura) { kopija.GretimumoStrukturaAdd(rysys.Key, rysys.Value); } return(kopija); }
/// <summary> /// Įvedimas kode testavimui supaprastinti /// </summary> /// <returns>Suformuotas grafas</returns> static Grafas HardcodedIvedimas() { Grafas duomenys = new Grafas(); duomenys.GretimumoStrukturaAdd(1, new List <int>() { 3, 5, 2 }); duomenys.GretimumoStrukturaAdd(2, new List <int>() { 1, 6 }); duomenys.GretimumoStrukturaAdd(3, new List <int>() { 1, 4, 6 }); duomenys.GretimumoStrukturaAdd(4, new List <int>() { 3, 6 }); duomenys.GretimumoStrukturaAdd(5, new List <int>() { 1 }); duomenys.GretimumoStrukturaAdd(6, new List <int>() { 2, 3, 4 }); return(duomenys); }
/// <summary> /// Metodas, suformuojantis indukuotąjį grafą /// </summary> /// <param name="originalus">Originalus grafas</param> /// <param name="virsuniuPoaibis">Indukuojančių viršūnių poaibis</param> /// <returns>Indukuotasis grafas</returns> static Grafas FormuotiNaujaGrafa(Grafas originalus, List <int> virsuniuPoaibis) { Grafas naujas = new Grafas(); foreach (var rysys in originalus.gretimumoStruktura) { if (virsuniuPoaibis.Contains(rysys.Key)) { naujas.GretimumoStrukturaAdd(rysys.Key, RastiGretimasVirsunes(rysys.Value, virsuniuPoaibis)); } } return(naujas); }