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 Higher Grades Now

Tutors Online