Problem 7 from Chapter 8
A bitset is a way of implementing a set where the set’s data
is stored in an array of booleans such that index i in the array is set to true
if i is in the set and false otherwise. For instance, the set {0, 1, 4, 6} is
represented by the following array:
[true, true, false, false, true, false, true]
The indices 0, 1, 4, and 6 are true, and the others are
false.
Write a BitSet class that works for sets of integers that
contains the following methods:
BitSet(n) — a constructor that creates an empty set. The
parameter n specifies the largest element the set will be able to hold. This
parameter is thus the size of the boolean array. BitSet(list) — a constructor
that is given an ArrayList of integers and builds a set from it toString() —
returns a string containing the contents of the set bracketed by curly braces
with individual elements separated by commas and spaces. For example: {0, 1, 4,
6} is how the set above would be returned.
toList() — returns an ArrayList of integers containing the
elements of the set
contains(x) — returns true or false depending on whether the
set contains the element x
add(x) — inserts x into the set
remove(x) — removes x from the set
size() — returns the number of elements in the set
isEmpty() — returns true if the set is empty and false
otherwise
getMax() — returns the largest element that the set is able
to hold
union(s1, s2) — a static method that returns the union of
sets s1 and s2. [Be careful because the sets may have different sizes.]
intersection(s1, s2) — a static method that returns the
intersection of sets s1 and s2. [Be careful because the sets may have different
sizes.]
difference(s1, s2) — a static method that returns the
intersection of sets s1 and s2. [Be careful because the sets may have different
sizes.]
isSubset(s1, s2) — a static method that returns whether or
not s1 is a subset of s2.
Get Free Quote!
438 Experts Online