「再帰って何?」
応用情報技術者試験でもアルゴリズム分野で超頻出ですが、
- 自分を呼ぶ?
- 無限ループにならない?
- スタックと何が関係ある?
で混乱する人がかなり多いテーマです。
この記事では、
- 再帰とは?
- なぜ使う?
- スタックとの関係
- 試験での頻出ポイント
を5分で理解できるように解説します!
まず結論
再帰とは?
「自分自身を呼び出す処理」
です!
超簡単にいうと
関数の中で:
同じ関数を呼ぶ
イメージ
A()
↓
A()
↓
A()
階段で理解しよう
かなり分かりやすい👇
下へ降りる
5段
↓
4段
↓
3段
最下段到達後
戻る
再帰も同じ!
基本構造
超重要!
再帰には必須
終了条件
なぜ?
ないと:
無限再帰
になる!
例
1
↓
2
↓
3
↓
…
永遠に続く。
代表例:階乗
超頻出!
階乗とは?
5! = 5×4×3×2×1
再帰で表す
n! = n × (n-1)!
つまり
5!
↓
5×4!
↓
5×4×3!
最後
1! = 1
で終了。
これが終了条件!
スタックとの関係
超頻出!
再帰呼出し時
情報を:
スタックへ保存
する。
スタックとは?
後入れ先出し(LIFO)
イメージ
A
B
C
積み重ね。
取り出し
C → B → A
再帰も同じ!
再帰の流れ
A()
↓
B()
↓
C()
終了後
C終了
↓
B終了
↓
A終了
再帰のメリット
- コード簡潔
- 木構造と相性良い
デメリット
- スタック消費
- 遅くなる場合あり
スタックオーバーフロー
超頻出!
意味
スタック容量超過
原因
- 無限再帰
- 深すぎる再帰
再帰が使われる例
| 用途 | 内容 |
|---|---|
| 木探索 | フォルダ構造 |
| クイックソート | 分割統治 |
| 階乗計算 | 数学処理 |
反復処理との違い
| 比較 | 再帰 | 反復 |
|---|---|---|
| 方法 | 自分呼出し | ループ |
| 使用 | スタック | カウンタ |
| 可読性 | 高いこと多い | 効率良いこと多い |
応用情報で超頻出
かなり狙われる👇
- 再帰
- 終了条件
- スタック
- LIFO
- スタックオーバーフロー
よくあるひっかけ
「再帰は必ず高速」
→ 違う!
スタック利用で:
遅くなる場合もある
1分で復習!
再帰
自分自身呼出し
必須
終了条件
再帰管理
スタック
問題
スタックオーバーフロー
練習問題
問題
再帰処理の説明として最も適切なものはどれか。
ア
複数CPUで同時実行する処理
イ
自分自身を呼び出す処理
ウ
記憶装置を圧縮する処理
エ
通信経路を制御する処理
解答
正解:イ
解説
再帰処理は、関数や手続きが自分自身を呼び出す処理方式です。
まとめ
再帰とは
「自分自身を呼ぶ処理」
超重要
- 終了条件
- スタック
- LIFO
- スタックオーバーフロー
まずは、
「再帰=自分呼出し」
「戻る時は逆順」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント