Изучение рекурсии в JavaScript: методы и примеры

  1. Базовая рекурсивная функция: функция, которая вызывает сама себя до тех пор, пока не будет выполнено определенное условие.

    function countdown(n) {
    if (n <= 0) {
    console.log('Done!');
    } else {
    console.log(n);
    countdown(n - 1);
    }
    }
    countdown(5);
  2. Вычисление факториала: рекурсивная функция для вычисления факториала числа.

    function factorial(n) {
    if (n === 0) {
    return 1;
    } else {
    return n * factorial(n - 1);
    }
    }
    console.log(factorial(5)); // Output: 120
  3. Последовательность Фибоначчи: рекурсивная функция для создания последовательности Фибоначчи.

    function fibonacci(n) {
    if (n <= 1) {
    return n;
    } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
    }
    }
    console.log(fibonacci(6)); // Output: 8
  4. Обход дерева: рекурсивные функции для обхода и выполнения операций над древовидными структурами данных (например, двоичными деревьями).

    class Node {
    constructor(value) {
    this.value = value;
    this.left = null;
    this.right = null;
    }
    }
    function inorderTraversal(node) {
    if (node !== null) {
    inorderTraversal(node.left);
    console.log(node.value);
    inorderTraversal(node.right);
    }
    }
    // Example usage:
    const root = new Node(1);
    root.left = new Node(2);
    root.right = new Node(3);
    root.left.left = new Node(4);
    root.left.right = new Node(5);
    inorderTraversal(root);