示例#1
0
 private LinkList ourList;          // Связанный список
                                    //--------------------------------------------------------------
 public ListIterator(LinkList list) // Конструктор
 {
     ourList = list;
     reset();
 }
示例#2
0
        static void Main(string[] args)
        {
            LinkList     theList = new LinkList();        // Создание списка
            ListIterator iter1   = theList.getIterator(); // Создание итератора
            long         value;

            iter1.insertAfter(20);             // Вставка элементов
            iter1.insertAfter(40);
            iter1.insertAfter(80);
            iter1.insertBefore(60);
            while (true)
            {
                Console.Write("Enter first letter of show, reset, ");
                Console.Write("next, get, before, after, delete: ");

                object choice = getChar();         // Ввод команды
                if (choice == null)
                {
                    continue;
                }
                switch (choice)
                {
                case 'q': return;

                case 's':                        // Вывод списка
                    if (!theList.isEmpty())
                    {
                        theList.displayList();
                    }
                    else
                    {
                        Console.WriteLine("List is empty");
                    }
                    break;

                case 'r':                        // Возврат к первому элементу
                    iter1.reset();
                    break;

                case 'n':                        // Переход к следующему элементу
                    if (!theList.isEmpty() && !iter1.atEnd())
                    {
                        iter1.nextLink();
                    }
                    else
                    {
                        Console.WriteLine("Can't go to next link");
                    }
                    break;

                case 'g':                        // Получение текущего элемента
                    if (!theList.isEmpty())
                    {
                        value = iter1.getCurrent().dData;
                        Console.WriteLine("Returned " + value);
                    }
                    else
                    {
                        Console.WriteLine("List is empty");
                    }
                    break;

                case 'b':                        // Вставка перед текущим элементом
                    Console.Write("Enter value to insert: ");

                    value = getInt();
                    iter1.insertBefore(value);
                    break;

                case 'a':                        // Вставка после текущего элемента
                    Console.Write("Enter value to insert: ");

                    value = getInt();
                    iter1.insertAfter(value);
                    break;

                case 'd':                        // Удаление текущего элемента
                    if (!theList.isEmpty())
                    {
                        value = iter1.deleteCurrent();
                        Console.WriteLine("Deleted " + value);
                    }
                    else
                    {
                        Console.WriteLine("Can't delete");
                    }
                    break;
                }
            }
        }