Sciweavers

ML
2007
ACM

A persistent union-find data structure

13 years 11 months ago
A persistent union-find data structure
The problem of disjoint sets, also known as union-find, consists in maintaining a partition of a finite set within a data structure. This structure provides two operations: a function find returning the class of an element and a function union merging two classes. An optimal and imperative solution is known since 1975. However, the imperative nature of this data structure may be a drawback when it is used in a backtracking algorithm. This paper details the implementation of a persistent union-find data structure as efficient as its imperative counterpart. To achieve this result, our solution makes heavy use of imperative features and thus it is a significant example of a data structure whose side effects are safely hidden behind a persistent interface. To strengthen this last claim, we also detail a formalization using the Coq proof assistant which shows both the correctness of our solution and its observational persistence. Categories and Subject Descriptors D.3.3 [Language Con...
Sylvain Conchon, Jean-Christophe Filliâtre
Added 27 Dec 2010
Updated 27 Dec 2010
Type Journal
Year 2007
Where ML
Authors Sylvain Conchon, Jean-Christophe Filliâtre
Comments (0)