1

私はデータベースストレージエンジンを作成しています(楽しみのため)。b-treeの可変長文字列、整数、バイナリのインデックスを作成するにはどうすればよいですか?

私はb-tree(とstuff)を使用していますが、b-treeの基本的な例では、キーをソートしてインデックスに格納する必要があることを示しています。

並べ替えを理解することはできますが、文字列の場合はインデックス作成のキーとして文字列を使用するとどうすればよいですか?

例:btreeのすべての電子メールアドレスのインデックスを作成したいのですが、どうすればいいですか?

+0

"b-treeの基本例"とはどういう意味ですか? 「基本的な例」を意味しますか?もしあなたがそれを意味しているのであれば、どの例があなたに言及していますか?これらの詳細を追加するには、質問を編集してください。 – nbro

+0

が編集されました。基本的には、電子メールや名前など、文字列用のディスクベースのbtreeを作成したいと考えています。文字列の並べ替えはどのように行うのですか? – 0zero0zero

+0

必要なのは* compare *関数だけです。これにより、文字列だけでなく、*任意の*データ型の索引付けが可能になります。また、すべてのデータ型には独自の比較機能が必要です。 (レコードなどの複合タイプであっても) – wildplasser

答えて

1

ソートするデータの種類は問われません。 Bツリーの場合、コンパレータだけが必要です。 dbに入れた最初の値はルートです。 2番目の値はルートと比較されます。小さければ左に進み、そうでなければ右に進みます。新しい値を挿入するには、しばしばツリーを再構築する必要があります。

文字列の長さを使用するか、英字で比較したり、アットマークの後ろにある電子メールのドットを数えたりできます。

関連する問題