JavaScriptの再帰関数の例と使用方法について


  1. 階乗の計算:
function factorial(n) {
  if (n === 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}
console.log(factorial(5)); // 結果: 120

この例では、再帰関数 factorial を使用して、与えられた数の階乗を計算しています。関数内で自身を呼び出すことによって、数値を繰り返し減らしながら計算を行っています。

  1. フィボナッチ数列の生成:
function fibonacci(n) {
  if (n <= 1) {
    return n;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}
console.log(fibonacci(7)); // 結果: 13

この例では、再帰関数 fibonacci を使用して、指定された位置のフィボナッチ数を生成しています。関数内で自身を呼び出すことによって、前の2つのフィボナッチ数を合計して次の数を計算しています。

  1. ツリーのトラバーサル:
function traverse(node) {
  console.log(node.value);

  if (node.left) {
    traverse(node.left);
  }

  if (node.right) {
    traverse(node.right);
  }
}
// 仮想的なツリーの作成
var tree = {
  value: 1,
  left: {
    value: 2,
    left: {
      value: 4,
      left: null,
      right: null
    },
    right: {
      value: 5,
      left: null,
      right: null
    }
  },
  right: {
    value: 3,
    left: {
      value: 6,
      left: null,
      right: null
    },
    right: null
  }
};
traverse(tree);

この例では、再帰関数 traverse を使用して、ツリーのノードを深さ優先でトラバースしています。ノードの値を表示した後、左の子ノードと右の子ノードが存在する場合に再帰的にトラバースを行っています。