Оглавление:

Переход по связному списку с помощью рекурсии - Java: 12 шагов
Переход по связному списку с помощью рекурсии - Java: 12 шагов

Видео: Переход по связному списку с помощью рекурсии - Java: 12 шагов

Видео: Переход по связному списку с помощью рекурсии - Java: 12 шагов
Видео: Владимир Парфиненко — Как поймать рекурсию за хвост 2024, Ноябрь
Anonim
Переход по связному списку с использованием рекурсии - Java
Переход по связному списку с использованием рекурсии - Java

Добро пожаловать и благодарим вас за выбор этого набора инструкций, который покажет вам, как создать рекурсивную функцию. Базовые знания java необходимы для понимания шагов, которые будут выполняться.

В целом, этот 12-этапный процесс не займет больше 15 минут. Единственный шаг, который может занять больше одной минуты, - это шаг 4, на котором пользователю предлагается создать образец теста для выполнения. Количество времени, которое будет использовано, зависит от пользователя, но я предполагаю, что это займет не более 3 минут.

Что вам понадобится на вашем компьютере: Мой тестовый файл (в который мы добавим код). Любая Java IDE по вашему выбору (для этого мы будем использовать drjava).

Шаг 1. Шаг первый: откройте вашу Java IDE по выбору

Шаг 1. Откройте вашу Java IDE по выбору
Шаг 1. Откройте вашу Java IDE по выбору

Для этого набора инструкций используется drjava. Просто откройте новый свежий файл.

Шаг 2: Шаг второй: загрузите и откройте мой файл.txt

Этот текст содержит класс «Узел», с которым мы будем работать, а также некоторые тесты, чтобы убедиться, что код, который мы пишем, работает должным образом. Скачать здесь

Шаг 3: Шаг третий: скопируйте и вставьте из файла.txt в среду IDE

Шаг 3. Скопируйте и вставьте из файла.txt в среду IDE
Шаг 3. Скопируйте и вставьте из файла.txt в среду IDE

Скопируйте текст из моего файла и вставьте его в открытую Java IDE.

Шаг 4: Шаг четвертый: создайте тест

Шаг четвертый: создайте тест
Шаг четвертый: создайте тест

Это проверит, правильно ли работает наша рекурсивная функция. Следуйте формату приведенных примеров тестов.

Шаг 5: Шаг пятый: создание рекурсивной функции

Шаг пятый: создайте рекурсивную функцию
Шаг пятый: создайте рекурсивную функцию

При появлении запроса введите следующее:

public int size () {}

Шаг 6: Шаг шестой: создание рекурсивной вспомогательной функции

Шаг шестой: создание рекурсивной вспомогательной функции
Шаг шестой: создание рекурсивной вспомогательной функции

При появлении запроса введите следующее:

общедоступный статический int sizeH (узел x) {}

Шаг 7: Шаг седьмой: вызов вспомогательной функции в главной рекурсивной функции

Шаг седьмой: вызов вспомогательной функции в главной рекурсивной функции
Шаг седьмой: вызов вспомогательной функции в главной рекурсивной функции

Это заставит нашу функцию пройти через связанный список с самого начала.

В первой из написанных нами функций введите следующее:

вернуть sizeH (первый);

Шаг 8: Шаг восьмой: создайте базовый вариант для вспомогательной функции

Шаг восьмой: создайте базовый вариант для вспомогательной функции
Шаг восьмой: создайте базовый вариант для вспомогательной функции

У каждой рекурсивной функции должен быть способ завершить ее. «Базовый вариант» заставит нас прекратить обход, как только мы дойдем до конца списка.

В "вспомогательной" функции введите следующее:

если (x == null) вернуть 0;

Шаг 9: Шаг девятый: добавьте «+1» и снова вызовите вспомогательную функцию

Шаг девятый: добавьте «+1» и снова вызовите вспомогательную функцию
Шаг девятый: добавьте «+1» и снова вызовите вспомогательную функцию

Мы добавляем по одному для каждого узла, который посещает рекурсивная функция.

В "вспомогательной" функции введите следующее:

вернуть 1 + sizeH (x.next);

Шаг 10: Шаг десятый: скомпилируйте / сохраните код

Перед запуском программы код необходимо скомпилировать.

Шаг 11: Шаг одиннадцатый: Запустите программу

Запустите вашу программу! Что было на выходе? Если что-то пошло не так, оглянитесь и посмотрите, правильно ли вы ввели код и в нужном месте.

Шаг 12: Шаг двенадцатый: Поздравляем

Шаг двенадцатый: Поздравляем!
Шаг двенадцатый: Поздравляем!

Если это ваш окончательный результат, значит, вы официально написали рекурсивную функцию, которая выполняет итерацию по связанному списку.

Рекомендуемые: