ВУЗ:
Составители:
Рубрика:
97
}
int middle = (int)Math.Round(getMiddle());
int min = getMin();
if (head.data == min) {
ListNode temp = new ListNode(middle, null);
temp.next = head;
head = temp;
} else {
ListNode prevNode = head;
for (; prevNode.next != null; prevNode = prevNode.next) {
if (prevNode.next.data == min) {
break;
}
}
//логика вставки нового элемента
}
}
Логику вставки легко реализовать, глядя на рисунки промежуточных
шагов во второй ситуации:
ListNode temp = new ListNode(middle, null);
temp.next = prevNode.next;
prevNode.next = temp;
Приведем полный код реализации обработки списка:
public void process() {
if (head == null) {
throw new ApplicationException("Список пуст");
}
int middle = (int)Math.Round(getMiddle());
int min = getMin();
if (head.data == min) {
ListNode temp = new ListNode(middle, null);
temp.next = head;
head = temp;
} else {
ListNode prevNode = head;
for (; prevNode.next != null; prevNode = prevNode.next) {
if (prevNode.next.data == min) {
break;
}
}
ListNode temp = new ListNode(middle, null);
temp.next = prevNode.next;
prevNode.next = temp;
}
}
Очевидно, что ее можно немного оптимизировать:
public void process() {
if (head == null) {
throw new ApplicationException("Список пуст");
}
int middle = (int)Math.Round(getMiddle());
Страницы
- « первая
- ‹ предыдущая
- …
- 95
- 96
- 97
- 98
- 99
- …
- следующая ›
- последняя »