public static void ZnajdzSciezkeKrytyczna(List <Zadanie> zadania, List <Zadanie> ostatecznaSciezka) { Zadanie max = new Zadanie(); foreach (Zadanie zad in zadania) { if (zad.czasZakonczenia > max.czasZakonczenia) { max = zad; } } ostatecznaSciezka.Add(max); if (max.poprzednieZadania.Count() != 0) { ZnajdzSciezkeKrytyczna(max.poprzednieZadania, ostatecznaSciezka); } }
public static void Wczytaj(string plik) { string[] lines = System.IO.File.ReadAllLines(@"D:\Uczelnia\semestr_6\SzeregowanieZadan\zad01\CPM\" + plik); for (int i = 0; i < lines.Length; i += 3) { int numerZadania = Int32.Parse(lines[i]); int czasTrwania = Int32.Parse(lines[i + 1]); Zadanie z = new Zadanie(numerZadania, czasTrwania, 0, 0, new List <Zadanie>(), new List <Zadanie>()); ManagerZadan.zadania.Add(z); } int j = 0; for (int i = 2; i < lines.Length; i += 3) { List <string> zadaniaPoprzednie = new List <string>(); foreach (string zad in lines[i].Split(' ')) { zadaniaPoprzednie.Add(zad); } foreach (string zad in zadaniaPoprzednie) { if (int.TryParse(zad, out int a)) { int b = Convert.ToInt32(zad); ManagerZadan.zadania.ElementAt(j).poprzednieZadania.Add(ManagerZadan.zadania.ElementAt(b - 1)); ManagerZadan.zadania.ElementAt(b - 1).nastepneZadania.Add(ManagerZadan.zadania.ElementAt(j)); } } j++; } }