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[];
}
Back