0

split/mergeの操作を実装して理解しようとしていtreapます。すべてのノードには、ヒープ キーとツリー キーの 2 つのキーがあります。ヒープ キーを見ると、有効なヒープがあり、ツリー キーと同じであることがわかります。

最大優先度または最小優先度 (最大ヒープか最小ヒープかによって異なります) を持つダミー ノードを挿入するだけでよいため、Treap の分割は通常よりも簡単です。ただし、このリンクは、分割キーがツリーにないことを前提としているだけです。ただし、常に右ツリーまたは左ツリー内に既存のキーが必要な場合はどうすればよいでしょうか? 私は何をしますか?

4

1 に答える 1

1
  1. 問題のキーを持つノードを見つけます。
  2. それを上に移動して、新しいルートになります(非常に高い(または非常に低い)優先度を指定します)。
  3. 左(または右)のサブツリーを分割します。
于 2013-03-17T20:21:17.483 に答える