Disjoint Set Data Structures - PowerPoint PPT Presentation

About This Presentation
Title:

Disjoint Set Data Structures

Description:

CSC 252a: Algorithms Pallavi Moorthy 252a-av Smith College December 14, 2000 Outline What are disjoint sets? What are disjoint set data structures? – PowerPoint PPT presentation

Number of Views:319
Avg rating:3.0/5.0
Slides: 12
Provided by: Educational323
Category:

less

Transcript and Presenter's Notes

Title: Disjoint Set Data Structures


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 VG 2 do MAKE-SET(v) 3 for each edge
(u,v) in the set EG 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
VG set of vertices of a graph G EGset 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
Its 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(m2).
Result of UNION (x,y)
10
Disjoint-set Forest Representation
Its 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
Write a Comment
User Comments (0)
About PowerShow.com