示例#1
0
        static public TwoList DelElement(TwoList beg, int number)
        {
            if (beg == null)//пустой список
            {
                Console.WriteLine("Ошибка! Список пустой!");
                return(null);
            }
            if (number == 1)//удаляем первый элемент
            {
                beg = beg.next;
                return(beg);
            }
            TwoList p = beg;

            //ищем элемент для удаления и встаем на предыдущий
            for (int i = 1; i < number && p != null; i++)
            {
                p = p.next;
            }
            if (p == null)//если элемент не найден
            {
                Console.WriteLine("Элемент не найден!");
                return(beg);
            }
            //исключаем элемент из списка
            p.next = p.next.next;
            return(beg);
        }
示例#2
0
        static public void PrintList(TwoList beg)
        {
            if (beg == null)
            {
                Console.WriteLine("Список пустой!");
                return;
            }
            TwoList currentPoint = beg;

            while (currentPoint != null)
            {
                Console.Write(currentPoint.ToString());
                currentPoint = currentPoint.next;
            }
            Console.WriteLine();
        }
示例#3
0
        public static TwoList MakeList(int size) //добавление в начало
        {
            int     info = 1;
            TwoList beg  = MakeTwoList(info);
            TwoList r    = beg;//переменная хранит адрес конца списка

            for (int i = 2; i <= size; i++)
            {
                info = i;
                TwoList p = MakeTwoList(info);
                r.next = p;
                p.pred = r;
                r      = p;
            }
            return(beg);
        }
示例#4
0
        public bool Contains(int data, TwoList beg)
        {
            TwoList current = beg;

            if (current == null)
            {
                return(false);
            }
            do
            {
                if (current.data == data)
                {
                    return(true);
                }
                current = current.next;
            }while (current != null);
            return(false);
        }
示例#5
0
        static void Main(string[] args)
        {
            int     n   = InputNumber("Введите число N: ");
            TwoList beg = null;

            beg = TwoList.MakeList(n);
            TwoList.PrintList(beg);
            int  find = InputNumber("Введите значение элемента, которое хотите найти: ");
            bool ok   = beg.Contains(find, beg);

            if (ok)
            {
                Console.WriteLine("Элемент был найден!");
            }
            else
            {
                Console.WriteLine("Элемент не найден!");
            }
            find = InputNumber("Введите значение элемента, которое хотите удалить: ");
            beg  = TwoList.DelElement(beg, find);
            TwoList.PrintList(beg);
            Console.ReadKey();
        }
示例#6
0
                pred; //адрес предыдущего элемента
 public TwoList(int d)
 {
     data = d;
     next = null;
     pred = null;
 }
示例#7
0
        static TwoList MakeTwoList(int d)
        {
            TwoList p = new TwoList(d);

            return(p);
        }