私の最後のCLRSの質問で成功したので、ここに別の質問があります。
アルゴリズム入門、第2版、p。501-502では、互いに素な集合のリンクリスト表現が記述されており、各リストメンバーは次の3つのフィールドを維持しています。
- セットメンバー
next
オブジェクトへのポインタ- 最初のオブジェクト(セット)に戻るポインタ
representative
。
リンクリストは、単一の「リンク」オブジェクトタイプのみを使用して実装できますが、教科書には、「ヘッド」リンクと「テール」リンクへのポインタを含む補助的な「リンクリスト」オブジェクトが示されています。「テール」へのポインタがあると操作が簡単になるため、小さいセットのリンクをそれに追加し始めるためにUnion(x, y)
、大きいセットのすべてのリンクをトラバースする必要はありません。x
y
ただし、テールリンクへの参照を取得するには、各リンクオブジェクトが4番目のフィールド(リンクリスト補助オブジェクト自体への参照)を維持する必要があるように思われます。その場合は、リンクリストオブジェクトを完全に削除し、その4番目のフィールドを使用してテールを直接ポイントしてみませんか?
これは本文の省略だと思いますか?