C++ STL "set"および "map"は、挿入のための最悪の最悪ケース時間、 消去、および操作をサポートします。したがって、基本的な実装は バイナリ検索ツリーです。 setとmapの実装における重要な問題は、イテレータクラスをサポートする です。もちろん、内部では イテレータはイテレータの "現在の"ノードへのポインタを保持します。 ハードポイントは効率的に次のノードに進んでいます。 「設定」と「マップ」は、我々が++または返却何、我々はイテレータクラスすなわちを使用して次のノードに進めるか、バイナリ検索ツリーを実装している場合STL内のBST実装
私の質問は
ある - すなわち、ありますそれは、サブツリーまたは右のサブツリーを残しましたか?
一般的に、STL実装のほとんどのBST、イテレータの++または - がどのように実装されていますか?
ありがとう!
上記の説明に記載されている内容はインオーダーですか? – venkysmarty
もちろん、私はbtreeが適切に整理されている(そしておそらくバランスが取れている)と、ポインタが適切に管理され、各挿入/削除時に配置されていると仮定しています。 –