home *** CD-ROM | disk | FTP | other *** search
- Problem 16: Equivalence classes.
-
-
- Suppose that we have a set of N objects {a[i]}. We are also given M statements
- of the form a[i] == a[j] . Let us assume that the objects have been mapped into
- the integers 1 .. N by some manner. For example, with N = 19 and M = 16, we
- might have the following objects and relationships:
- 18 = 12 16 = 14 8 = 18 16 = 6
- 6 = 10 9 = 1 17 = 4 16 = 17
- 8 = 2 3 = 13 9 = 11 3 = 8
- 11 = 5 7 = 19 3 = 9 19 = 15
- Write a program that reads M and N, followed by the M pairings i = j,
- with i and j both in the range 1 .. N. Your program should compute which
- objects fall into which classes of equivalent objects, and should then
- print out these classes, as follows: objects sorted within each class,
- and classes printed in order of their first members. Thus, for the example
- above, the output would be:
- 1 2 3 5 8 9 11 12 13 18
- 4 6 10 14 16 17
- 7 15 19
-
-