//Функция объединения public static void DeleteElements() { var exit = false; PointOne beg = null; var sizeOne = 0; var k = 2; while (!exit) { var sw = Print.Menu(k, Index[5], Index[6], Index[7], Index[4]); switch (sw) { case 1: beg = CreatePoint(out k, out sizeOne); Console.WriteLine(Index[8]); Console.ReadLine(); break; case 2: Console.WriteLine("Строка до изменений: "); ShowList(beg); var tmp = sizeOne; beg = DelElement(beg, ref sizeOne); if (sizeOne != tmp) { Console.WriteLine("Строка после изменений: "); ShowList(beg); } Console.WriteLine(Index[8]); Console.ReadLine(); break; case 3: ShowList(beg); Console.WriteLine(Index[8]); Console.ReadLine(); break; case 4: exit = true; //выход break; } } //Конец While }
//Вывести список private static void ShowList(PointOne beg) { //проверка наличия элементов в списке if (beg == null) { Console.WriteLine("The List is empty"); return; } var p = beg; while (p != null) { Console.Write(p); p = p.Next; //переход к следующему элементу } Console.WriteLine(); }
//Удалляем элемент с заданным номером private static PointOne DelElement(PointOne beg, ref int sizeOne) { if (beg == null) //пустой список { Console.WriteLine("Error! The List is empty"); return(null); } var p = beg; if (p.Data % 2 == 0) { beg = beg.Next; sizeOne--; return(beg); } for (var i = 0; i < sizeOne - 1 && p.Next != null; i++) { if (p.Next.Data % 2 != 0) { p = p.Next; } else { break; } } if (p.Next == null) { Console.WriteLine("Error! Even number isn't in list"); return(beg); } //если элемент не найден //исключаем элемент из списка p.Next = p.Next.Next; sizeOne--; return(beg); }
public PointOne(int d) //конструктор с параметрами { Data = d; Next = null; }
//Задание 1. Удаление первого элемента из списка с четным информационным полем #region taskOne //создание однонаправленного списка private static PointOne MakePoint(int d) { var p = new PointOne(d); return(p); }
public PointOne Next; //адресное поле public PointOne() //конструктор без параметров { Data = 0; Next = null; }