// The list-based set, no ordering public class SetAA extends LBS implements Set { public SetAA() { super(); } // positions the list at element x if it is there, else return null private ListOfObjects locate(Element x) { ls.reset(); while (!ls.atEnd()) { Element curr = (Element) ls.getItem(); if (curr.elEquals(x)) return ls; ls.next(); } return null; } public Element find(Element x) { if (locate(x) == null) return null; else return (Element)ls.getItem(); } public void insert(Element x) { if (locate(x) == null) ls.insert(x); } public void delete(Element x) { if (locate(x) != null) ls.delete(); } public boolean hasElement(Element x) { return locate(x) != null; } public void union(Set other) { if (this != other) { Element[] elems = other.getContents(); for (int i=0; i < elems.length; ++i) { insert(elems[i]); } } } public void intersection(Set other) { if (this != other) { Element[] elems = getContents(); for (int i=0; i < elems.length; ++i) { if (!other.hasElement(elems[i])) delete(elems[i]); } } } public void difference(Set other) { if (this != other) { Element[] elems = other.getContents(); for (int i=0; i < elems.length; ++i) { delete(elems[i]); } } } }