public void UstalWielkośćGrafu(int value, T[] Oznaczenia) { Wierzchołek[] tmp = new Wierzchołek[value]; int l = ListaWierzchołków.Length; int Min = Math.Min(l, value); for (int i = 0; i < Min; i++) { tmp[i] = ListaWierzchołków[i]; tmp[i].Wartość = Oznaczenia[i]; } if (value > l) { for (int i = Min; i < value; i++) { tmp[i] = new Wierzchołek(); tmp[i].Wartość = Oznaczenia[i]; } } else { for (int i = Min; i < l; i++) { ListaWierzchołków[i].UsuńSię(); } } ListaWierzchołków = tmp; Obiekty.Clear(); for (int i = 0; i < WielkośćGrafu; i++) { Obiekty.Add(ListaWierzchołków[i].Wartość, i); } }
public void ZnajdźPołączenia(out List <int> Wejścia, out List <int> Wyjścia) { Wejścia = new List <int>(); Wyjścia = new List <int>(); Dictionary <Wierzchołek, int> dzienik = new Dictionary <Wierzchołek, int>(ListaWierzchołków.Length); for (int i = 0; i < ListaWierzchołków.Length; i++) { dzienik.Add(ListaWierzchołków[i], i); } for (int i = 0; i < ListaWierzchołków.Length; i++) { Wierzchołek w = ListaWierzchołków[i]; foreach (var item in w.ListaPołączeń) { int nr = dzienik[item]; if (nr < i) { continue; } Wejścia.Add(i); Wyjścia.Add(nr); } } }