Beispiel #1
0
        public BinList Remove(int number)//Удаление элемента списка с указанным информационным полем
        {
            BinList temp = this;

            do
            {
                if (temp.Data == number)
                {
                    if (temp.Prev == null && temp.Next == null)
                    {
                        return(null);
                    }
                    if (temp.Prev == null)
                    {
                        temp = temp.next; temp.Prev = null; return(temp);
                    }
                    if (temp.Next == null)
                    {
                        temp.Prev.Next = null; return(this);
                    }
                    temp.Prev.Next = temp.Next; temp.Next.Prev = temp.Prev; return(this);
                }
                temp = temp.Next;
            }while (temp != null);

            Console.WriteLine("В списке нет элементов с таким информационным полем");
            return(this);
        }
Beispiel #2
0
        public static void ShowList(BinList beg)
        {
            if (beg == null)
            {
                Console.WriteLine("Список пуст");
                return;
            }
            BinList p = beg;

            while (p != null)
            {
                Console.Write(p + " ");
                p = p.next;
            }
            Console.WriteLine();
        }//Показать список
Beispiel #3
0
        public void Search(int number)//Поиск элемента списка с указанным информационным полем
        {
            int     count = 1;
            BinList temp  = this;

            do
            {
                if (temp.Data == number)
                {
                    Console.WriteLine("Информационнон поле {0} имеет элемент номер {1}", number, count); return;
                }
                temp = temp.Next;
                count++;
            }while (temp != null);

            Console.WriteLine("В списке нет элементов с таким информационным полем");
        }
Beispiel #4
0
        public static BinList Create(int size)//Создание списка добавлением элементов в конец списка
        {
            int     info = 1;
            BinList beg  = new BinList(info);

            BinList temp = beg;

            for (int i = 1; i < size; i++)
            {
                info++;
                BinList NewElem = new BinList(info);
                temp.Next    = NewElem;
                NewElem.Prev = temp;
                temp         = NewElem;
            }
            return(beg);
        }
Beispiel #5
0
        static void Menu()//Меню задачи
        {
            Console.WriteLine("Выберите действие:\n1. Создать новый двунаправленный список\n2. Найти элемент списка\n3. Удалить элемент списка\n4. Выход из программы");
            int i = VvodProverka(1, 4);

            switch (i)
            {
            case 1:
            {
                Console.Clear();
                Console.WriteLine("Введите число N");
                N   = VvodProverka(1);
                Beg = BinList.Create(N);
                Console.Clear();
                BinList.ShowList(Beg);
                Console.WriteLine();
                Menu();
            }
            break;

            case 2:
            {
                Console.Clear();
                if (Beg == null)
                {
                    BinList.ShowList(Beg); Console.WriteLine(); Menu();
                }
                else
                {
                    BinList.ShowList(Beg); Console.WriteLine();
                    Console.WriteLine("Введите информационное поле искомого элемента");
                    int info = VvodProverka(1, N);
                    Beg.Search(info);
                    BinList.ShowList(Beg);
                    Console.WriteLine(); Menu();
                }
            }
            break;

            case 3:
            {
                Console.Clear();
                if (Beg == null)
                {
                    BinList.ShowList(Beg); Console.WriteLine(); Menu();
                }
                else
                {
                    BinList.ShowList(Beg); Console.WriteLine();
                    Console.WriteLine("Введите информационное поле удаляемого элемента");
                    int info = VvodProverka(1, N);
                    Beg = Beg.Remove(info);
                    BinList.ShowList(Beg);
                    Console.WriteLine(); Menu();
                }
            }
            break;

            case 4:
                Environment.Exit(0);
                break;
            }
        }
Beispiel #6
0
 public BinList(int d)//Создание элемента списка
 {
     data = d;
     next = null;
     prev = null;
 }
Beispiel #7
0
        }//свойство prev

        public BinList()//Создание пустого элемента  списка
        {
            data = 0;
            next = null;
            prev = null;
        }