2012-02-28 17 views
0

誰かが2dバイナリ検索ツリーからノードを削除する際に役立つ洞察を提供できるかどうかは疑問でした。私は4例、私が完了したその最初があります理解2dバイナリ検索ツリーからノードを削除する

:いいえ子供(葉)を持つノードを削除

  1. は、シンプル、ちょうどnullにそのノードへのポインタを設定します。
  2. 左ノードと右ノードに1つの子を持つノードを削除すると、nullが返されます。
  3. 右ノードと左ノードに1つの子を持つノードを削除すると、nullが返されます。
  4. 左と右の2つの子を持つノードを削除する。

私は2、3、4を正確に行う方法がわかりません。繰り返し実行しようとしましたが、動作していないようです。私はこれが再帰的に行われなければならないと仮定しています。誰かが、これがどうやって正確に行われるかについての光を放つことができますか?これはJavaであり、重要ではありません:)

+0

どのような種類の2Dバイナリ検索ツリーですか?これはk-d木ですか?クアッドツリー? – templatetypedef

答えて

0

2次元ツリーでは、すべての値がリーフノードに格納されます。内部ノードは、リーフノードの位置を特定するための経路としてだけ機能する。具体的には、内部ノードは、基礎となるデータが含まれる半平面を定義する。私たちはデータだけを扱います。私たちはデータ構造そのものの構造要素を変更しません。したがって、上のケース1のみが成立する。他のすべては無関係です。

関連する問題