public class BSet {
public BSet(int size) {
if (size<=0)
System.out.println("(new) set size must be positive");
else {
elts = new int[size];
nelt = 0;
nmax = size;
}
}
public void add(int el) {
if (full())
System.out.println("(add) got full set");
else {
int i;
for (i = 0; (i<nelt) && (elts[i] != el); ++i);
if ((nelt<nmax)&&(i==nelt)) {
elts[i] = el;
nelt++;
}
}
}
public void remove(int el) {
int i;
for (i=0; (i<nelt) && (elts[i] != el); ++i);
if (i<nelt) {
for (i++; i<nelt; i++)
elts[i-1]=elts[i];
nelt--;
}
}
public int size() {
return nelt;
}
public int max() {
return nmax;
}
public boolean has(int el) {
int i;
for (i=0; (i<nelt)&&(elts[i]!=el); ++i);
return (i<nelt);
}
public boolean full() {
return (nelt == nmax);
}
public boolean empty() {
return (nelt==0);
}
public boolean equal(BSet s) {
int i;
if (size() != s.size())
return false;
if (size() == 0) return true;
for (i=0; i<size(); i++)
if(!s.has(elts[i])) return false;
return true;
}
public void print() {
int i;
System.out.print("{");
for (i=0; i<size(); ++i)
System.out.print((i != 0 ? ", " : "")+elts[i]);
System.out.println("}");
}
protected int nelt;
protected int nmax;
protected int elts[];
}