Пример #1
0
        public static int SumRec(PointBiList beg, int sum = 0)
        {
            PointBiList p = beg;

            if (p != null)
            {
                sum += p.data;
                // Переход к следующему элементу
                return(SumRec(p.next, sum));
            }

            return(sum);
        }
Пример #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Введите длину двунаправленного списка:");
            int size = InputInteger(1, 100);
            var beg  = PointBiList.MakeList(size);

            PointBiList.Print(beg);

            Console.WriteLine("Сумма информационных полей:");
            Console.WriteLine(PointBiList.Sum(beg));

            Console.WriteLine("Сумма информационных полей через рекурсию:");
            Console.WriteLine(PointBiList.SumRec(beg));
        }
Пример #3
0
        // Создание двунаправленного списка
        public static PointBiList MakeList(int size)
        {
            PointBiList beg = MakePoint(rand.Next(-20, 20));

            for (int i = 1; i < size; i++)
            {
                PointBiList p = MakePoint(rand.Next(-20, 20));
                p.next   = beg;
                beg.pred = p;
                beg      = p;
            }

            return(beg);
        }
Пример #4
0
        public static int Sum(PointBiList beg)
        {
            int sum = 0;

            PointBiList p = beg;

            while (p != null)
            {
                sum += p.data;
                // Переход к следующему элементу
                p = p.next;
            }

            return(sum);
        }
Пример #5
0
        public static void Print(PointBiList beg)
        {
            // Проверка наличия элементов в списке
            if (beg == null)
            {
                Console.WriteLine("Список пустой");
                return;
            }

            PointBiList p = beg;

            Console.WriteLine("Список:");
            while (p != null)
            {
                Console.WriteLine(p.ToString());
                // Переход к следующему элементу
                p = p.next;
            }
        }
Пример #6
0
        // Создание элемента списка
        static PointBiList MakePoint(int num)
        {
            PointBiList p = new PointBiList(num);

            return(p);
        }
Пример #7
0
 public PointBiList(int num)
 {
     data = num;
     next = null;
     pred = null;
 }
Пример #8
0
 public PointBiList()
 {
     data = rand.Next(-20, 20);
     next = null;
     pred = null;
 }