public void AddBefore(Person value, LinkedListItem point) { if (Head == null) AddFirst(value); else { var current = new LinkedListItem {Data = value}; current.Prev = point.Prev; point.Prev.Next = current; current.Next = point; point.Prev = current; } }
public void AddLast(Person value) { if (Head == null) { Head = new LinkedListItem {Data = value}; Tail = Head; } else { Tail.Next = new LinkedListItem {Data = value, Prev = Tail}; Tail = Tail.Next; } Count++; }
public void AddFirst(Person value) { if (Head == null) { Head = new LinkedListItem { Data = value }; Tail = Head; } else { Head.Prev = new LinkedListItem {Data = value, Next = Head}; Head = Head.Next; } Count++; }
public static void AddMenu() { var a = new Person(); Console.WriteLine("Введите имя"); a.Name = Console.ReadLine(); Console.WriteLine("Возраст:"); a.Age = int.Parse(Console.ReadLine()); Console.WriteLine("Рост:"); a.Height = int.Parse(Console.ReadLine()); Console.WriteLine("Вес:"); a.Weight = int.Parse(Console.ReadLine()); bool menu = true; int age; while (menu) { Console.WriteLine("Добавить в \n1. Начало\n2.Конец\n3.После элемента...\n4.До элемента..."); char ch = Console.ReadLine()[0]; switch (ch) { case '1': myList.AddFirst(a); menu = false; break; case '2': myList.AddLast(a); menu = false; break; case '3': Console.WriteLine("Введите возраст человека, после которого вы хотите добавить элемент"); age = int.Parse(Console.ReadLine()); myList.AddAfter(a, myList.FindInt("age", age)); menu = false; break; case '4': Console.WriteLine("Введите возраст человека, перед которым вы хотите добавить элемент"); age = int.Parse(Console.ReadLine()); myList.AddBefore(a, myList.FindInt("age",age)); menu = false; break; default: Console.WriteLine("Неправильный ввод, попробуйте ещё раз"); break; } } }
private void Swap(Person a, Person b) { Person copy = a; a = b; b = copy; }
public Person[] ToArray() { Person[] arr = new Person[Count]; LinkedListItem current = Head; int i = 0; while (current != null) { arr[i] = current.Data; current = current.Next; i++; } return arr; }
public bool IsEqual(Person a, Person b) { return ((a.Age == b.Age) && (a.Height == b.Height) && (a.Weight == b.Weight) && (a.Name == b.Name)) ? true : false; }