- PR -

php再帰呼び出しについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2008/05/22
投稿数: 6
投稿日時: 2008-05-22 21:15
id | name | suuti | parent
-- +------+---------------
1 | root | 1 | 0
2 | aaa | 2 | 1
3 | bbb | 3 | 7
4 | ccc | 4 | 5
5 | ddd | 5 | 2
6 | eee | 6 | 2
7 | fff | 7 | 6
8 | ggg | 8 | 3
9 | hhh | 9 | 6
カラムparentはカラムidの子要素であることをあらわしております。
再帰処理により、まず
rootはidが1,子供であるparentが1であるものはあるか?
id2がparent1であるため、子になる。
次にparentが2のものはあるか?
id5,6がparent2になるため子になる。
ここで2つのidが子になるため、分岐する。
この場合は若いid5のほうを見て、parentが5のものはいるか。
id4がparentが5になるので子になる。
次にparentが4のものはいるか。
次はいないので、id4は木構造で言う葉(末端)になる。
末端まで行き着いたら、id4である親にid5のsuuti5を加え、id4のsuuti4+5=9になる。
次に分岐したときの後のid6の子はいるか?
id7が子なる。
というように、この値を親に足しこみ、いろいろな場所からidを与えてあげるだけでその子の値が加えられた親の値が取得できるようにしたいのですが、
プログラムが思いつきません。
どなたかご教授くださいますよう、お願いいたします。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-05-22 23:11 ]
あつしfx
大ベテラン
会議室デビュー日: 2002/04/08
投稿数: 104
お住まい・勤務地: XPできるところ
投稿日時: 2008-05-23 00:12
処理をいっぺんにしようとして頭がフリーズしていると思います。

1. ツリーのノードとなるクラスを作る
2. 上記のクラスでテーブルをツリー構造に変換する
3. クラスに数値を足すメソッドを追加する

で考えてみたらどうでしょうか?
_________________
http://aglabo.com/ @Homepage
http://furukawa-select.com/mt/ @Blog
未記入
会議室デビュー日: 2008/05/22
投稿数: 6
投稿日時: 2008-05-23 01:12
あつしfx様
ご返答ありがとうございます。あつしfx様からお返事をいただいた内容で考えてみようと思ったのですが、プログラムのイメージがなかなか湧かない感じでして…
1

スキルアップ/キャリアアップ(JOB@IT)