The problem with union-find, where you need to draw states, etc. has a discrepancy with the Baase text about the arguments for the union operation. For this problem, assume the arguments can be any two elements, not necessarily the set-ids (or leaders) and assume that the union operation internally calls find() to get the set-ids (or leaders) for its arguments. (CLRS assumes this too.) Alternatively, assume the problem is restated by replacing each call of the form union(X,Y) by union(find(X), find(Y)) and work it on that basis. This file is clarify-rev-ex in the class directory. --Allen Clarification 2, union-find problem: Another student pointed out that CLRS uses the opposite convention for breaking ties -- the second argument remains as the root. So do not follow the CLRS code blindly; adjust it so the first argument remains as the root in this case. --Allen