public static void sortElement(this RealizationList list, object newElement) { int index = 0; if ((newElement is int)) { //пусть отсортирован по убыванию //голова -> хвост наибольший -> наименьший foreach (Node item in list) { if ((int)newElement < (int)item.dataNode) { index++; continue; } else { list.addElement(newElement, index); break; } } } else { //сортировка для других типов } }
public void testNum() { RealizationList list = new RealizationList(); for (int i = 0; i < 10; i++) { list.AddElementInBegin(i); } list.sortElement(5); foreach (Node item in list) { Console.WriteLine(item.dataNode); } }
private static void addElement(this RealizationList list, object newElement, int index) { Node beginNode = list.GetHeadNode(); Node previosNode = list.GetHeadNode().prevNode; for (int numNode = 0; numNode < index; numNode++) { beginNode = previosNode; previosNode = beginNode.prevNode; } Node newNode = new Node(); beginNode.prevNode = newNode; newNode.prevNode = previosNode; newNode.dataNode = newElement; }
public void testChar() { char[] testChar = { 'a', 'b', 'c', 'd' }; RealizationList list = new RealizationList(); for (int i = 0; i < testChar.Length; i++) { list.AddElementInBegin(testChar[i]); } foreach (Node item in list) { if (item == null) { break; } Console.WriteLine(item.dataNode); } }