Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }