Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 9. Disjoint Sets.

Slides:



Advertisements
Similar presentations
Lecture 10 Disjoint Set ADT.
Advertisements

Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R4. Disjoint Sets.
1 Union-find. 2 Maintain a collection of disjoint sets under the following two operations S 3 = Union(S 1,S 2 ) Find(x) : returns the set containing x.
1 Disjoint Sets Set = a collection of (distinguishable) elements Two sets are disjoint if they have no common elements Disjoint-set data structure: –maintains.
Disjoint Sets Given a set {1, 2, …, n} of n elements. Initially each element is in a different set.  {1}, {2}, …, {n} An intermixed sequence of union.
CSCE 210 Data Structures and Algorithms
CS Data Structures Chapter 5 Trees. Forests  Definition: A forest is a set of n ≥ 0 disjoint trees.  When we remove a root from a tree, we’ll.
Heaps Heaps are used to efficiently implement two operations:
© 2004 Goodrich, Tamassia Union-Find1 Union-Find Partition Structures.
Chapter 9: Union-Find Algorithms The Design and Analysis of Algorithms.
© 2004 Goodrich, Tamassia Union-Find1 Union-Find Partition Structures.
CS2420: Lecture 42 Vladimir Kulyukin Computer Science Department Utah State University.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 1. Data Modeling and ADTs.
Data Structure (III) GagGuy.
General Trees CS 400/600 – Data Structures. General Trees2.
Union-Find Problem Given a set {1, 2, …, n} of n elements. Initially each element is in a different set.  {1}, {2}, …, {n} An intermixed sequence of.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R2. Binary Search Trees.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Aaron Bauer Winter 2014.
Trees & Forests D. J. Foreman. A Forest A BC R ST DE F.
CMSC 341 Disjoint Sets. 8/3/2007 UMBC CMSC 341 DisjointSets 2 Disjoint Set Definition Suppose we have an application involving N distinct items. We will.
CMSC 341 Disjoint Sets Textbook Chapter 8. Equivalence Relations A relation R is defined on a set S if for every pair of elements (a, b) with a,b  S,
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 4. Trees.
Prof. Amr Goneid, AUC1 CSCI 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 5. Dictionaries(2): Hash Tables.
Lecture11: Tree I Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)
CSC 252a: Algorithms Pallavi Moorthy 252a-av Smith College December 14, 2000.
Union Find ADT Data type for disjoint sets: makeSet(x): Given an element x create a singleton set that contains only this element. Return a locator/handle.
Set Representation S 1 ={0, 6, 7, 8}, S 2 ={1, 4, 9}, S 3 ={2, 3, 5} Two operations considered here  Disjoint set union S 1  S 2 ={0,6,7,8,1,4,9}  Find(i):
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Nicki Dell Spring 2014.
CSE373: Data Structures & Algorithms Lecture 10: Implementing Union-Find Dan Grossman Fall 2013.
Fundamental Data Structures and Algorithms Peter Lee April 24, 2003 Union-Find.
Union & Find Problem 황승원 Fall 2010 CSE, POSTECH 2 2 Union-Find Problem Given a set {1, 2, …, n} of n elements. Initially each element is in a different.
1 Disjoint Set Data Structure. 2 Disjoint Sets What are Disjoint Sets? Tree Representation Basic Operations Parent Array Representation Simple Find and.
ICS 353: Design and Analysis of Algorithms Heaps and the Disjoint Sets Data Structures King Fahd University of Petroleum & Minerals Information & Computer.
1 The Disjoint Set ADT CS146 Chapter 8 Yan Qing Lei.
1 Today’s Material The dynamic equivalence problem –a.k.a. Disjoint Sets/Union-Find ADT –Covered in Chapter 8 of the textbook.
CSCI 333 Data Structures Chapter 6 30 September and 2 and 4 October 2002.
CS 146: Data Structures and Algorithms July 16 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak
Disjoint-sets Abstract Data Type (ADT) that contains nonempty pairwise disjoint sets: For all sets X and Y in the container, – X != ϴ and Y != ϴ – And.
Prof. amr Goneid, AUC1 CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 13. Abstract Data Types (ADT’s)
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 6. Dictionaries(3): Binary Search Trees.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R3. Priority Queues.
Prof. amr Goneid, AUC1 CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 15. Dictionaries (1): A Key Table Class.
General Trees A tree T is a finite set of one or more nodes such that there is one designated node r called the root of T, and the remaining nodes in (T-{r})
WEEK 5 The Disjoint Set Class Ch CE222 Dr. Senem Kumova Metin
1 Binary Search Trees. 2 Binary Search Trees Binary Search Trees The Binary Search Tree (BST) Search, Insertion and Traversal of BST Removal of nodes.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part R2. Elementary Data Structures.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 2a. Simple Containers: The Stack.
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 4. Trees.
Parent Pointer Implementation
CSCE 210 Data Structures and Algorithms
CSE 373: Data Structures and Algorithms
CSCE 210 Data Structures and Algorithms
CSCE 210 Data Structures and Algorithms
CSCE 210 Data Structures and Algorithms
CSCE 210 Data Structures and Algorithms
An application of trees: Union-find problem
CMSC 341 Disjoint Sets Based on slides from previous iterations of this course.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Linda Shapiro Spring 2016.
Analysis & Design of Algorithms (CSCE 321)
CSE 373 Data Structures and Algorithms
Forests D. J. Foreman.
CSE 332: Data Abstractions Union/Find II
ICS 353: Design and Analysis of Algorithms
Disjoint Sets Given a set {1, 2, …, n} of n elements.
Disjoint Sets Given a set {1, 2, …, n} of n elements.
Set Representation S1={0, 6, 7, 8}, S2={1, 4, 9}, S3={2, 3, 5}
Dynamic Equivalence Problem
An application of trees: Union-find problem
Disjoint Sets Textbook Chapter 8
CSE 373: Data Structures and Algorithms
Presentation transcript:

Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 9. Disjoint Sets

Prof. Amr Goneid, AUC2 Disjoint Sets What are Disjoint Sets? Tree Representation Basic Operations Parent Array Representation Simple Find and Simple Union Disjoint Sets Class Some Applications

Prof. Amr Goneid, AUC3 A set S is a collection of elements of the same type A disjoint-set data structure keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. Disjoint sets: If S i and S j, i  j are two sets, then S i  S j = Ø Examples: S1 = {1,7,8,9}, S2 = {5,2,10}, S3 = {3,4,6} What are Disjoint Sets?

Prof. Amr Goneid, AUC4  One possible representation is a tree where a set can be identified by a parent node and children nodes.  In this representation, children point to their parents, rather than the reverse. The representative of the subset is the ancestor of all elements in that subset (e.g. 1, 5, 3) S1 = {1,7,8,9}S2 = {5,2,10} S3 = {3,4,6} Union-Find Data Structure Tree Representation Union-Find Data Structure: Tree Representation

Prof. Amr Goneid, AUC5  n disjoint nodes can be represented as n disjoint sets where each node is its own parent, i.e. p[i] = -1: Parent Array Representation 132 n 123n i p[i]

Prof. Amr Goneid, AUC6 Find(i): Given the element (i), find the set containing (i), i.e. find the representative of (i) = the root of the tree. Algorithm for Simple find: Keep traversing up the parent pointers until we hit the root. int find(int i) { while (p[i] >= 0) i = p[i]; return i; } Basic Operations

Prof. Amr Goneid, AUC7  The value in p[i] represents the parent of node (i). For the sets S1,S2,S3 shown before, we have: Simple Find i p[i] find (1)  1 find (4)  3 find (10)  5

Prof. Amr Goneid, AUC8 Union(i,j): Given two disjoint sets S i and S j, obtain a set containing the elements in both sets, i.e., S i  S j Algorithm for Simple union: Make the root of one of two trees point to the other, so now all elements have the same root and thus the same subset name. void union (int i, int j) { p [i] = j ; } Basic Operations

Prof. Amr Goneid, AUC9 Make set (i) the child of set (j) = union (i,j) Simple Union Example: union(5,1)

Prof. Amr Goneid, AUC10  The parent array would change to: Simple Union i p[i]

Prof. Amr Goneid, AUC11 class Sets { private: int *p, n; public: Sets(int Size): n(Size)// Constructor { p = new int[n+1]; for (int i=0; i<=n; i++) p[i] = -1; } Disjoint sets class

Prof. Amr Goneid, AUC12 ~Sets()// Destructor { delete [ ] p; } void SimpleUnion(int i, int j); int SimpleFind(int i); }; Disjoint sets class

Prof. Amr Goneid, AUC13 // Make set(i) the child of set(j) void Sets::SimpleUnion(int i, int j) { p[i] = j; } // Find the parent set of subset(i) int Sets::SimpleFind(int i) { while (p[i]>=0) i = p[i]; return i; } Disjoint sets class

Prof. Amr Goneid, AUC14 Representation of disjoint collections of data Representation of Trees, Forests and Graphs Some Applications

Prof. Amr Goneid, AUC15 Learn on your own about: The C++ STL set container