現在、勉強も兼ねてSTLのMapを自作しています。
Mapを実装するのには、2分探索木を用いる方法があるというのを聞き、自分なりに2分探索木を実装しました。
最終的には、STLのIteratorと似たような性質を持つものを作ろうとしています。
それで今のところは特定のキー値に対して、格納されている値を引き出すことには成功しているのですが、どうも現在Iteratorが指しているノードの次のノードを見つける方法がうまくいきません。
ソートされた状態で走査しようと考えているためInorderな走査を考えています。
よろしければ、その方法を教えていただけないでしょうか?
簡単なサンプルを載せておきます。
//現在出来ていること MyMap < int, float > map; map.add( 4, 3.0f ); map.add( 3, 2.0f ); map.add( 6, 9.0f ); MyMap < int, float > ::iterator it; it = map.Find( 4 ); std::cout << it.GetValue() << std::endl; //きちんと4.0と表示される //行いたいこと it = it.Inc(); //行いたい部分(次のノードを代入) std::cout << it.GetValue() << std::endl; //9.0と表示して欲しい説明しにくい部分が多々あり、説明不足となっていますが、よろしくお願いします。