PHPでの再帰を用いたツリー構造について
PHPを勉強中の初心者です。PHPで、ツリー構造を再帰関数を用いて実装するプログラムを作成し、そのツリーを表示しようとているのですが、どうもよくわかりません。
このプログラムの挙動としては、以下でクリエイトしたTreeオブジェクトを、preorder(トップダウン、左側から)で出力させるもので、期待値は以下のとおりです。
(期待値)
preorder:
1
2
4
5
3
6
7
(クリエイトされたオブジェクト)
$myTree = new Tree(1,
new Tree(2, new Tree(4), new Tree(5)),
new Tree(3, new Tree(6), new Tree(7)));
=========サンプルプログラム================================
#!/usr/bin/env php
<?php
class Tree {
var $top;
var $left;
var $right;
#コンストラクタを定義はこれであっているでしょうか。
function Tree($top, $left, $right){
$this ->top = $top;
$this ->left = $left;
$this ->right= $right;
};
function preorder( ){
#preorder() メソッドを実装方法がよくわかりません。
}
}
$myTree = new Tree(1,
new Tree(2, new Tree(4), new Tree(5)),
new Tree(3, new Tree(6), new Tree(7)));
function printPreorder($tree) {
echo "preorder:\n";
$tree->preorder(create_function('$v', 'echo "$v\n";'));
}
printPreorder($myTree);
?>
補足
ドライブ全体のツリー構造がずらずらーっと出てきますが、最後に表示されてるのがツリーの最後のほうの一部だけなのです。 じっさいには、dドライブのなかのMy Document のなかの「私のデーター」というフォルダー全部が見たいのですが...