ハッシュを含むバイナリツリー?

I saw the question somewhere “Binary tree vs hash table,
which one is better?”

And then I thought – “Why not both? Why not combine the two
and create a binary tree where each node contains a ‘number’ that
is actually a hash of a string or other type of data?”

メルクルの木が同じものかどうかは確かではありません。

ベストアンサー

あなたは機能的なデータ構造であるハッシュトライを発明したでしょう。

Achillesのハッシュテーブルは、配列エントリを変更する(またはオーバーフローリストに挿入する)必要があることを変更する必要があります。これは機能的な言語には適していません。

しかし、予想される一定の時間の参照/挿入/削除が大好きなので、アイテムのハッシュコードを通常どおりに計算してから、バイナリディジットに従うことでバイナリツリーに挿入します。たとえば、「0」が残り、「1」が右に移動します。

しかし、バイナリツリーにも変更を加えることはできません。そうですが、スマート性を持たせることで、新しいサブツリーを持つノードのクローンを単純に返すことができます。代わりに新しい木。ハッシュテーブルに同じトリックを使用する場合、ハッシュテーブルをコピーする必要がありますが、ここで行う必要があるのは、パスを複製することです(これは一定のサイズです)

関数型言語の制約がなくても大きな変更はありません。たとえば、そのようなデータ構造は「永続的」です。以前のバージョンをすべて保存したい場合は、元に戻ってその内容を確認することができます。すべての記憶が一度だけ書き込まれて永遠にそこにとどまるので(もちろんガベージコレクションまで)、自由に並列化することもできます。

Merkleの木は同じものではありません。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です