You are on page 1of 15

CS301 Data Structures

Assignment No.6
Marks: 20

Deadline
Your assignment must be uploaded/submitted at or before July 26, 2010

Rules for Marking


It should be clear that your assignment will not get any credit if:
o
o
o

The assignment is submitted after due date.


The submitted assignment does not open
The assignment is copied.

Objective
The objective of this assignment is to provide on hand experience of:
o Union Operation
o Find Method

Assignment
Question:
Consider the following sequence of union commands on the set of elements
{10, ..........., 26}:
union(find(11),find(17)),
union(find(13),find(15)),
union(find(11),find(12)),
union(find(13),find(14)),
union(find(26),find(10)),
union(find(11),find(24)),
union(find(26),find(21)),
union(find(18),find(19)),
union(find(11),find(20)),
union(find(13),find(20)),
union(find(13),find(21)),
union(find(13),find(22)),
union(find(24),find(25))
Show the results of the above Union commands for each method given below in pictorial form.
a) Using the first union method given by Weiss

b) Using union-by-size

c) Using union-by-height

d) Show the result of command find(22) pictorially by using the figure developed
5

in option c.

Solution
a) Using the first union method given by Weiss
1
0

1
1

1
2

.
-1 -1
10 11

1
3

1
4

-1 -1
12 13

1
5

1
6

1
7

1
8

1
9

2
0

2
1

2
2

2
3

2
4

2
5

2
6

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
14 15 16 17 18 19 20
21 22 23 2425 26
union(find(11),find(17)),

1
0

1
2

1
1

1
3

1
4

1
5

1
6

1
9

1
8

2
0

2
1

2
2

2
4

2
3

2
5

2
6

1
7

-1

-1

-1

10 11

-1

-1

12 13

-1

14

15

-1

11

16

17

-1

-1

-1

18

19

1
8

1
9

-1

20

-1

21

-1

-1

22

23

2
2

2
3

-1

24-

-1
25

26

2
5

2
6

union(find(13),find(15)),
1
0

1
2

1
1

1
3

1
7

-1

-1

1
4

1
6

2
0

2
1

2
4

1
5

-1

10 11

-1

-1

12 13

13

14

15

-1

11

16

17

-1

-1

18

-1

19

-1

20

-1

21

-1

-1

22

23

2
2

2
3

-1

24-

-1
25

26

2
5

2
6

union(find(11),find(12)),

1
0

1
1

1
7

1
3

1
2

1
5

1
4

1
6

1
8

1
9

2
0

2
1

2
4

-1

-1

11

10 11

-1

-1

12 13

13

14

-1

15

11

16

-1

17

-1

18

-1

19

-1

20

-1

21

-1

22

-1

23

-1

24-

-1
25

26

2
5

2
6

union(find(13),find(14)),

1
0

1
1

1
7

1
2

-1

-1

1
3

11

10 11

1
6

1
4

1
5

-1

13

12 13

31

14

-1

15

16

1
8

11

-1

17

1
9

-1

2
0

18

-1

19

2
1

-1

2
2

20

2
3

-1

21

-1

2
4

-1

22

23

24-

2
1

2
2

2
3

-1

-1
25

26

union(find(26),find(10)),
1
1

1
7

26

-1

10 11

1
3

1
2

1
4

11

1
6

1
9

1
8

2
0

2
4

2
5

1
0

1
5

-1

13

13

-1

11

-1

-1

-1

-1

-1

-1

-1

12 13

14

15

16

17

18

19

20

21

22

23

24-

-1

-1

25

26

union(find(11),find(24)),

1
1

1
3

1
2

1
7

1
6

1
4

1
9

1
8

2
0

2
1

2
2

2
5

2
3

2
6

1
0

1
5

2
4

26

-1

10 11

11

2
6

-1

13

13

-1

-1

-1

-1

-1

-1

-1

-1

11

-1

-1

12 13

14

15

16

17

18

19

20

21

22

23

24

25

26

union(find(26),find(21)),
1
1

1
3

1
2

1
7

1
6

1
9

1
8

2
0

2
2

2
5

2
3

2
1

1
5

1
4

2
6

1
0

2
4

26

-1

11

-1

13

10 11
12 13
union(find(18),find(19)),
1
1

15

1
3

1
2

1
7

14

13

-1
16

11
17

1
6

-1
18

19

-1
20

26
21

2
0

1
8

-1

-1

22

23

2
2

2
3

11

-1

24-

-1
25

2
5

1
9

1
5

1
4

18

26

2
6

2
1

1
0

2
4

26

-1

11

10 11

-1

13

12 13

14

13
15

-1
16

11
17

-1

18

18

19

-1
20

26
21

-1

-1

22

23

2
2

2
3

11

-1

24-

-1
25

26

union (find(11),find(20)),

1
1

1
3

1
6

1
8

2
5

2
6

2
0
1
2

1
7

1
9

1
5

1
4

2
1

1
0

2
4

26

-1

10 11

11

-1

12 13

13
14

13
15

-1
16

11
17

-1
18

18
19

11
20

26
21

-1
22

-1
23

11
24-

-1

-1
25

26

union(find(13),find(20)),

1
3

1
1

2
0

26

1
4

13

11

10 11

1
8

2
2

2
5

2
3

2
6

1
9

1
5

2
4

1
7

1
6

2
1

1
0

1
2

-1

13

12 13

13

14

-1

15

11

16

17

-1

18

18

19

11
20

26

-1

21

22

-1
23

11

-1

24-

-1
25

26

union(find(13),find(21)),

1
3

1
1

2
0

1
7

26

13

10 11

1
6

1
4

2
4

11

1
5

1
2

1
8

2
2

2
5

2
3

1
9

2
6

2
1

1
0

-1

13

13

-1

11

-1

18

11

26

-1

-1

11

12 13

14

15

16

17

18

19

20

21

22

23

24-

union(find(13),find(22)),

-1
25

13
26

11
33

22
22

22
00

11
11

11
44

11
55

22
44

11
77

26 13
10 11

11
66

11
22

11 -1
12 13

11
88

22
55

22
33

11
99

22
66

22
11

11
00

13 13 -1 11 -1 18 11 26 13 -1 11 -1 13
14 15 16 17 18 19 20
21 22 23 2425 26
union(find(24),find(25))

1
3

1
6

2
3

1
8

2
5
2
2

2
0

1
1

1
7

1
4

2
4

1
5

1
2

1
9

2
6

2
1

1
0

26

13

11

-1

13

13

-1

11

-1

18

11

26

13

-1

11

13

13

10

11

12 13

14

15

16

17

18

19

20

21

22

23

24

25

26

b) Using union-by-size
Solution:

-1
10

-1
11

-1
12

-1
13

-1
14

-1
15

-1
16

-1
17

-1
18

-1
19

-1
20

-1
21

-1
22

-1
23

-1
24

-1
25

-1
26

-1
23

-1
24

-1
25

-1
26

-1
23

-1
24

-1
25

-1
26

-1
23

-1
24

-1
25

-1
26

union (find (11), find (17)),

-1
10

-2
11

-1
12

-1
13

-1
14

-1
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

union (find (13), find (15)),

-1
10

-2
11

-1
12

-2
13

-1
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

union (find (11), find (12)),

-1
10

-3
11

11
12

-2
13

-1
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

union (find (13), find (14)),

-1
10

-3
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

-1
23

-1
24

-1
25

-1
26

-1
23

-1
24

-1
25

-2
26

-1
23

11
24

-1
25

-2
26

-1
23

11
24

-1
25

-3
26

union (find (26), find (10)),

26
10

-3
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

union (find (11), find (24)),

26
10

-4
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

-1
21

-1
22

union (find (26), find (21)),

26
10

-4
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-1
18

-1
19

-1
20

26
21

-1
22

union (find (18), find (19)),

26
10

-4
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-2
18

18
19

-1
20

26
21

-1
22

-1
23

11
24

-1
25

-3
26

-1
23

11
24

-1
25

-3
26

union (find (11), find (20)),

26
10

-5
11

11
12

-3
13

13
14

13
15

-1
16

11
17

-2
18

18
19

11
20

26
21

-1
22

union (find (13), find (20)),

1
3

1
1

2
0

26
10

13
11

11
12

1
4

2
4

1
7

-8
13

1
6

1
8

2
2

2
5

2
3

1
9

1
5

2
1

1
2

13
14

13
15

-1
16

11
17

-2
18

18
19

2
6

11
20

26
21

-1
22

-1
23

11
24

-1
25

-3
26

1
0

union (find (13), find (21)),

1
3

1
1

2
0

26
10

13
11

11
12

1
4

1
5

2
4

1
7

1
6

-11
13

1
2

13
14

-1
16

2
2

2
5

2
3

1
9

2
6

2
1

13
15

1
8

1
0

11
17

-2
18

18
19

11
20

26
21

-1
22

-1
23

11
24

-1
25

13
26

union(find(13),find(22)),

1
3

2
2

2
0

26
10

1
1

1
7

13
11

11
12

1
6

1
4

2
4

-12 13
13 14

1
5

1
2

13
15

1
8

-1
16

2
5

1
9

2
6

2
1

2
3

1
0

11
17

-2
18

18
19

11
20

26
21

13
22

union(find(24),find(25))

-1
23

11
24

-1
25

13
26

1
3

26
10

1
6

2
2

1
1

1
13
4

1
5

2
6

2
2

1
1

1
4

1
5

2
6

1
8

1
9
2
5

1
7

2
4

1
2

2
1

1
0

2
0

1
7

2
4

1
2

2
1

1
0

11
12

-13 13
13 14

13
15

-1
16

1
6

2
3

1
8

1
9

2
0

13
11

2
5

2
3

11
17

-2
18

18
19

11
20

26
21

13
22

-1
23

11
24

c) Using union-by-height

13
25

13
26

Solution:

0
10

0
11

0
12

0
13

0
14

0
15

0
16

0
17

0
18

0
19

0
20

0
21

0
22

0
23

0
24

0
25

0
26

0
23

0
24

0
25

0
26

All elements in different sets and 0 indicate their height.

union (find (11), find (17)),

0
10

-1
11

0
12

0
13

0
14

0
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

union (find (13), find (15)),

0
10

-1
11

0
12

-1
13

0
14

13
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

0
23

0
24

0
25

0
26

0
23

0
24

0
25

0
26

0
23

0
24

0
25

0
26

0
23

0
24

0
25

-1
26

union (find (11), find (12)),

0
10

-1
11

11
12

-1
13

0
14

13
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

union (find (13), find (14)),

0
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

union (find (26), find (10)),

26
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

union (find (11), find (24)),

26
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

0
18

0
19

0
20

0
21

0
22

0
23

11
24

0
25

-1
26

0
23

11
24

0
25

-1
26

0
23

11
24

0
25

-1
26

0
23

11
24

0
25

-1
26

union (find (26), find (21)),

26
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

0
18

0
19

0
20

26
21

0
22

union (find (18), find (19)),

26
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

-1
18

18
19

0
20

26
21

0
22

union (find (11), find (20)),

26
10

-1
11

11
12

-1
13

13
14

13
15

0
16

11
17

-1
18

18
19

11
20

26
21

0
22

union (find (13), find (20)),

26
10

13
11

11
12

-2
13

13
14

13
15

0
16

11
17

-1
18

18
19

11
20

26
21

0
22

0
23

11
24

0
25

-1
26

0
23

11
24

0
25

13
26

0
23

11
24

0
25

13
26

union (find (13), find (21)),

26
10

13
11

11
12

-2
13

13
14

13
15

0
16

11
17

-1
18

18
19

11
20

26
21

0
22

union (find (13), find (22)),

26
10

13
11

11
12

-2
13

13
14

13
15

0
16

11
17

-1
18

18
19

11
20

26
21

13
22

union (find (24), find (25))

26
10

13
11

11
12

-2
13

13
14

13
15

0
16

11
17

-1
18

18
19

11
20

26
21

13
22

0
23

11
24

13
25

d) Show the result of command find (22) pictorially by using the figure developed

13
26

in option c.

Solution:

As we can see from the above figure that there is a direct link between the node 22 and its root
so when we call the find (22) method then it will return the root node 13 .therefore the name of the
set that contains 22 is13 and it is shown in the above figure.

You might also like