public static OList Add(OList list, int n, MyClassLibrary10.Employee G) // Добавление элемента на позицию n { if (list == null) { Console.WriteLine("Список пустой"); return(null); } else { if (list.count < n) { Console.WriteLine("Выход за пределы списка"); return(null); } else { if (n == 1) { OList LinksAfterN = list; list = new OList { data = G, next = LinksAfterN }; list.count += 1; return(list); //OList ListTmp = list; //ListTmp.data = G; } else if (n == list.count) { OList ListTmp = list; for (int i = 1; i < n; i++) { ListTmp = ListTmp.next; } ListTmp.next = new OList { data = G, next = null }; return(list = ListTmp); } else { OList ListTmp = list; // Для запоминания n-го элемента OList LinksAfterN = list; // Для запоминания связей после n-го элемента for (int i = 0; i < n - 1; i++) { ListTmp = ListTmp.next; // Присваиваем ссылку на следующий элемент LinksAfterN = ListTmp.next; // Присваиваем ссылку на элемент, который нужно запомнить } ListTmp.next = new OList { data = G, next = LinksAfterN }; list.count += 1; return(list = ListTmp); } } } }
public static OList AddBeginningLIST(int l) // Добовление в начало однонаправленного списка { OList beg = new OList(); //начало списка beg.data = MakeNew(); //созднание нового элемента for (int i = 1; i < l; i++) { //Console.WriteLine(beg.data.ToString());//это мне для проверки MyClassLibrary10.Employee tmp = new MyClassLibrary10.Employee(); // Данные для OList OList element = new OList(); // Новый узел element.data = tmp; // Заполняем data нового узла element.next = beg; // ссылаемся на предыдущий узел beg = element; // Присваиваем предыдущему узлу ссылку на текущий } beg.count = l; return(beg); }
public static MyClassLibrary10.Employee MakeNew() { MyClassLibrary10.Employee Employee = new MyClassLibrary10.Employee(); return(Employee); }
public OList() { data = null; next = null; count = 0; }