アルファ版ぐらいの木ができた

まとめてみると...

  • イテレーターに関して当初予定していた機能はほぼ実装できた
    • 全てのイテレーターで親子兄弟に自由に移動可能
    • 今のところ全てのイテレーターがポインタしかメンバがない
    • 直接の子のみを走査する sibling_iterator と pre-order, post-order 用の pre_order_iterator, post_order_iterator がある
  • std::list の延長線上にある
    • 子供として追加する場合と兄弟として追加する場合の関数が std::list::insert と同じ
    • erase も同様
  • ルートは tree のコンストラクタを呼んだ段階では生成されていない
  • アロケーターをきちんと取り扱っている

動作には boost が必須です。明日あたりドキュメントとかを書きます。

本体 : http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/gslib/GSLib/Code/tree/
テスト : http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/gslib/GSLib/Test/tree/test_tree.cpp?rev=1.1&content-type=text/plain