標準の素集合構造は非結合をサポートしていないため、結合、検索、および非結合をかなり効率的にサポートできるデータ構造を探しています (すべて少なくとも O(log n) 以上)。背景として、私は MCTS [ http://en.wikipedia.org/wiki/Monte_Carlo_tree_search]を使用して Go AI を作成しています。これは、バックトラック中に接続および切断される石のグループを追跡するために使用されます。デユニオンはセット内の任意のオブジェクトではなく、常に最新のユニオンの「元に戻す」ため、これにより簡単になると思います。
私は次の論文を読みましたが、提案されたデータ構造を実行することはできましたが、少しやり過ぎで、 http://docs.lib.purdue.edu/cgi/viewcontent.cgi ?article を実装するのに時間がかかるようです。 =1773&context=cstech
もちろん、O( a(n)) は素晴らしいものですが、パス圧縮は de-union では機能しないと確信しており、O(log n) に満足しています。私の腸は、解決策がヒープに関連している可能性があることを教えてくれますが、何も理解できませんでした.