fc2ブログ

再帰呼び出しとは??

Posted by html5_newbie on 26.2010 フリーテーマ 0 comments 0 trackback
プログラマーの人であれば、大抵の人が頭を悩ませられる「再帰呼び出し」の処理。

どんな処理かというと、例を挙げた方がわかりやすいでしょう。

例えば、以下のようなツリー構造の掲示板。

1 記事タイトル
2 ├Re:記事タイトルの返信1
3 │├Re:記事タイトルの返信1の返信1
4 │└Re:記事タイトルの返信1の返信2
5 ├Re:記事タイトルの返信2
6 │└Re:記事タイトルの返信2の返信1
7 ├Re:記事タイトルの返信3
8 │└Re:記事タイトルの返信3の返信1
9 ├・・・

テーブルの構造としては、

ID 親ID タイトル
1  -  記事タイトル
2  1  記事タイトルの返信1
3  2  記事タイトルの返信1の返信1
4  2  記事タイトルの返信1の返信2
5  1  記事タイトルの返信2
6  5  記事タイトルの返信2の返信1
7  1  記事タイトルの返信3
8  7  記事タイトルの返信3の返信1

こんな感じになります。

そして、これをデータとして呼び出すプログラムは、

p1.親IDが無いレコードを抽出
p2.「p1」にあるレコードを親IDにもつレコードを探し、見つかったら、そのレコードを親IDにもつレコードを探し、さらに見つかったら、そのレコードを親IDにもつレコードを探し・・・と繰り返し、親IDをもつレコードが見つからなくなったら終了。

こんな処理になるわけです。難しいですね。
 HOME