Примеры Рекурсивных функций [закрываются]

Кто-либо может предложить программировать примеры, которые иллюстрируют рекурсивные функции? Существуют обычные старые лошади, такие как ряд Fibonacci и Ханойские башни, но что-либо помимо них было бы забавой.

34
задан Codeslayer 24 September 2008 в 12:16
поделиться

1 ответ

Вот прагматичный пример из мира файловых систем. Эта утилита рекурсивно подсчитывает файлы в указанном каталоге. (Не помню почему, но когда-то давно у меня была необходимость в чем-то подобном...)

public static int countFiles(File f) {
    if (f.isFile()){
        return 1;
    }

    // Count children & recurse into subdirs:
    int count = 0;
    File[] files = f.listFiles();
    for (File fileOrDir : files) {
        count += countFiles(fileOrDir);
    }
    return count;
}

(Обратите внимание, что в Java экземпляр File может представлять как обычный файл, так и каталог. Эта утилита исключает каталоги из подсчета.)

Обычным примером в реальном мире может быть, например, FileUtils.deleteDirectory() из библиотеки Commons IO; см. API doc и source.

6
ответ дан 27 November 2019 в 15:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: