1 / 11

Disjoint Set Data Structures

Disjoint Set Data Structures. CSC 252a: Algorithms Pallavi Moorthy 252a-av Smith College December 14, 2000. Outline. What are disjoint sets? What are disjoint set data structures? Explanation of data structure An application – determining connected components

Download Presentation

Disjoint Set Data Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Disjoint Set Data Structures CSC 252a: Algorithms Pallavi Moorthy 252a-av Smith College December 14, 2000

  2. Outline • What are disjoint sets? • What are disjoint set data structures? • Explanation of data structure • An application – determining connected components • Two representations of disjoint sets: (1) linked lists (2) disjoint set forests

  3. What Are Disjoint Sets? Two sets A and B are disjoint if they have NO elements in common. (A B = 0) U Disjoint Sets NOT Disjoint Sets

  4. What Are Disjoint Set Data Structures? • A disjoint-set data structure maintains a collection • S = {S1, S2,…,Sk} of disjoint dynamic (changing) sets. • Each set has a representative (member of the set). • Each element of a set is represented by an object (x).

  5. Why Do We Need Disjoint Set Data Structures? To determine the connected components of an undirected graph.

  6. Operations Supported By Disjoint Set Data Structures MAKE-SET(x): creates a new set with a single member pointed to by x. UNION(x,y): unites the sets that contain common element(s). FIND-SET(x): returns a pointer to the representative of the set containing x.

  7. An Application: Determining the Connected Components of an Undirected Graph This is the procedure that uses the disjoint set operations to compute the connected components of a graph. CONNECTED-COMPONENTS(G) //computes connected components of a graph 1 for each vertex v in the set V[G] 2 do MAKE-SET(v) 3 for each edge (u,v) in the set E[G] 4 do FIND-SET(u) = FIND-SET(v) 5 then UNION(u,v) SAME-COMPONENT (u,v) //determines whether two vertices are in the same connected component 1 if FIND-SET(u) = FIND-SET(v) 2 then return TRUE 3 else return FALSE V[G]= set of vertices of a graph G E[G]=set of edges of a graph G

  8. A graph consisting of four connected components An illustration of how the disjoint sets are computed by CONNECTED-COMPONENTS

  9. Linked-list Representation Of Disjoint Sets It’s a simple way to implement a disjoint-set data structure by representing each set, in this case set x, and set y, by a linked list. Set x Set y The total time spent using this representation is Theta(m^2). Result of UNION (x,y)

  10. Disjoint-set Forest Representation It’s a way of representing sets by rooted trees, with each node containing one member, and each tree representing one set. The running time using this representation is linear for all practical purposes but is theoretically superlinear.

  11. Acknowledgements Information and diagrams from Cormen, et al, Chapter 22

More Related