0

スパース行列(主にゼロを持つ行列なので、0以外の値のみを記録する)を実装する必要がありますが、バイナリ検索ツリーを使用して実装する必要があります。

編集:

だから今、私は行/列をキーとして使用してそれを実装することを考えていますが、そのツリーのルートとして何を使用しますか?

/編集

二分探索木を研究したら、この実装がどのように有益であるか、または少なくとも可能であるかを理解することを望んでいましたが、私は一生それを理解できません。

私はグーグルを無駄に試しました、そして私自身はそうすることを試みる方法さえ想像することができません。

これを実装する言語はまだ決まっていないので、コード例は必要ありません。問題はロジックです。これがどのように機能するかを確認する必要があります。

PS使用するタグがわからないので、誰かが編集できるとしたら、よろしくお願いします。

4

1 に答える 1

2

二分木を使用するには、マトリックス内の (可能な) エントリごとに異なるキーが必要です。したがって、マトリックス [100, 100] で (2, 4) を検索する場合、キーは "002004" のようになります。このキーを使用して、値をツリーに挿入できます。

次元ごとにキーが長くなるため、セルの座標をハッシュするハッシュ関数を検討することもできます。ツリー内には、このハッシュ キーのエントリのリストがあります。その場合、ツリーは正しいリストへのインデックスにすぎません。次に、リスト内で順次検索を実行する必要があります。または、リストを並べ替えると、バイナリ検索を使用して改善できます。

于 2012-06-12T13:14:52.203 に答える