Java Core July: DDS. Лекция #3 (Часть 3)

preview_player
Показать описание
Курс " Программирование на Java с нуля " - 24%
Автор курса: Иван Головач
Рекомендации по теме
Комментарии
Автор

при сворачивании public static int length(Node node) {
int count = 0;
System.out.println("before " + count);
if (node == null) {
return 0;
} else {
count = 1 + length(node.next);
System.out.println("after " + count);
return count;
}
}

LM
Автор

у меня метод получился такой, чесно говоря не понял как он работает, но он работает :)public static int max(Node tail) {
if (tail == null) {
return 0;
} else if (tail.value > max(tail.next)) {
return tail.value;
} else {
return max(tail.next);
}
}

LM
Автор

public static int length(Node tail) {
return (tail == null) ? 0 : 1 + length(tail.next);
}
получаем длину списка. 1 + length(tail.next) - это получается 1+1+1+1...двигаясь по стеку в какую сторону? когда "разворачивается" метод или при его "сворачивании"?

CyanideBtm
Автор

у Вас на (35 минуте гдето) когда вы обьясняете как вычислить max, то функция max сначало принмает 2 параметра max(tail.value, max(tail.next)) тоесть получается int i int, но в тот же момент в этой же функции рекурсивно вызывается max(tail.next), который принимает уже 1 параметр, както не вяжется

LM
Автор

а есть решеные данных лабораторных? методы вставки и удаления по индексу не представляю как реализовать

LM