private static void TwoListPrint(TwoListItem head) { TwoListItem p = head; while (p != null) { Console.Write(p); p = p.next;//переход к следующему элементу } Console.WriteLine(); }
private static void AddItem(ref TwoListItem head, int number) { Random rnd = new Random(); int info = rnd.Next(10, 100); Console.WriteLine("The element {0} is adding...", info); //создаем новый элемент TwoListItem NewPoint = MakePoint(info); if (head == null)//список пустой { head = MakePoint(rnd.Next(10, 100)); return; } if (number == 0) //добавление в начало списка { NewPoint.next = head; head.pred = NewPoint; head = NewPoint; return; } //вспом. переменная для прохода по списку TwoListItem p = head; //идем по списку до нужного элемента for (int i = 1; i < number - 1 && p != null; i++) { p = p.next; } if (p == null)//элемент не найден { Console.WriteLine("Error! The size of List less than Number"); return; } //добавляем новый элемент NewPoint.next = p.next; if (p.next != null) { p.next.pred = NewPoint; } p.next = NewPoint; NewPoint.pred = p; return; }
private static void GenerateTwoList(int size)//добавление в начало { Random rnd = new Random(); int info = rnd.Next(0, 11); TwoListItem beg = MakePoint(info); for (int i = 1; i < size; i++) { info = rnd.Next(0, 11); TwoListItem p = MakePoint(info); p.next = beg; beg.pred = p; beg = p; if (beg == null) { Console.WriteLine("Лист пустой"); return; } twoListHead = p; } }
static TwoListItem MakePoint(int d) { TwoListItem p = new TwoListItem(d); return(p); }
public TwoListItem(int d)//конструктор с параметрами { Data = d; next = null; pred = null; }
pred; //адрес предыдущего элемента public TwoListItem() { Data = 0; next = null; pred = null; }