예제 #1
0
        public static PointUniList DelElement(PointUniList beg, int number, PointUniList p = null, int index = 0)
        {
            if (beg == null)
            {
                Console.WriteLine("Удалять нечего: список пуст");
                return(beg);
            }

            if (number == 1)
            {
                beg = beg.next;
                return(beg);
            }

            if (p == null)
            {
                if (index == 0)
                {
                    p = beg;
                }
                else
                {
                    return(beg);
                }
            }

            if (p.next?.data == number)
            {
                p.next = p.next.next;
                return(beg);
            }

            return(DelElement(beg, number, p.next, ++index));
        }
예제 #2
0
        public static int FindElement(PointUniList beg, int findNumber, PointUniList p = null, int index = 0)
        {
            if (beg == null)
            {
                Console.WriteLine("Искать нечего: список пуст");
                return(-1);
            }

            if (p == null)
            {
                if (index == 0)
                {
                    p = beg;
                }
                else
                {
                    return(-1);
                }
            }

            if (p.data == findNumber)
            {
                return(p.data);
            }

            return(FindElement(beg, findNumber, p.next, ++index));
        }
예제 #3
0
        // Добавление в начало однонаправленного списка
        public static PointUniList MakeList(int N, PointUniList beg = null)
        {
            // Создаем элемент и добавляем в начало списка
            PointUniList p = MakePoint(N);

            p.next = beg;
            beg    = p;

            if (N <= 1)
            {
                return(beg);
            }

            return(MakeList(--N, beg));
        }
예제 #4
0
        public static void Print(PointUniList beg)
        {
            // Проверка наличия элементов в списке
            if (beg == null)
            {
                Console.WriteLine("Список пустой");
                return;
            }

            PointUniList p = beg;

            Console.WriteLine("Список:");
            while (p != null)
            {
                Console.WriteLine(p.ToString());
                // Переход к следующему элементу
                p = p.next;
            }
        }
예제 #5
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Введите кол-во элементов списка:");
            int          N    = InputInt(1, 100);
            PointUniList list = PointUniList.MakeList(N);

            PointUniList.Print(list);
            Console.WriteLine("Введите элемент для удаления:");
            int numForDel = InputInt(1, 100);

            list = PointUniList.DelElement(list, numForDel);
            PointUniList.Print(list);
            Console.WriteLine("Введите элемент для поиска:");
            int numForFind = InputInt(1, 100);
            int element    = PointUniList.FindElement(list, numForFind);

            Console.WriteLine(element == -1 ? "Элемент не найден" : "Найденный элемент: " + element);

            Console.ReadLine();
        }
예제 #6
0
        // Создание элемента списка
        static PointUniList MakePoint(int N)
        {
            PointUniList p = new PointUniList(N);

            return(p);
        }
예제 #7
0
 // Конструктор с параметром
 public PointUniList(int N)
 {
     data = N;
     next = null;
 }