Example #1
0
        static void PartTwo()
        {
            BidirectionalRingList <Organization> organizations = new BidirectionalRingList <Organization>();

            Console.WriteLine(" === Создан пустой двунаправленный колцевой список === ");

            organizations.AddToEnd(new Organization("Организация1", "Город1", 103));
            organizations.AddToEnd(new Organization("Организация2", "Город2", 503));
            organizations.AddToEnd(new Organization("Организация3", "Город3", 303));
            organizations.AddToStart(new Organization("Организация4", "Город4", 203));

            Console.WriteLine(" === Добавлены 4 элемента. Количество элементов в коллекции(Count) = " + organizations.Count + " === ");
            Console.WriteLine();
            Console.WriteLine(" === Вывод с помощью foreach:  === ");
            foreach (Organization org in organizations)
            {
                Console.WriteLine(org);
            }
            bool exist, notExist;

            exist    = organizations.Contains(new Organization("Организация1", "Город1", 103));
            notExist = organizations.Contains(new Organization("Организация15", "Город13", 103));

            Console.WriteLine("\n === Существующий элемент: {0}", exist ? "Найден === " : "Не найден === ");
            Console.WriteLine(" === Не существующий элемент: {0}\n", notExist ? "Найден === " : "Не найден === ");

            organizations.ShowForward();
            BidirectionalRingList <Organization> clone = new BidirectionalRingList <Organization>();
            BidirectionalRingList <Organization> copy  = new BidirectionalRingList <Organization>();

            Console.WriteLine();
            Console.WriteLine(" === Клонирование и поверхностное копирование коллекции === ");
            clone = (BidirectionalRingList <Organization>)organizations.Clone();
            copy  = organizations.Copy();
            clone.ShowForward();

            Console.WriteLine("\n === Удаление элемента с индексом 2 из коллекции === ");
            organizations.RemoveAt(2);
            Console.WriteLine();

            Console.WriteLine(" === Клонирование === ");
            clone.ShowForward();
            Console.WriteLine();

            Console.WriteLine(" === Поверхностное копирование === ");
            copy.ShowForward();
        }
Example #2
0
        public BidirectionalRingList(BidirectionalRingList <T> list)
        {
            Count = 0;
            Point p     = list.beg;
            Point end2  = list.end;
            bool  start = true;

            while (p.Prev != end2 || start == true)
            {
                AddToEnd(p.Data);
                p     = p.Next;
                start = false;
            }

            /*p.Next = beg;
             * beg.Prev = end;*/
        }
Example #3
0
 Point current;                                   //текущий элемент коллекции
 public MyEnumerator(BidirectionalRingList <T> c) //конструктор
 {
     beg     = c.beg;
     current = null;
 }