Queue put(Item) get -> Item isEmpty -> bool clear length -> int Deque : Queue put ::> putLeft get ::> getRight putLeft(Item) getLeft -> Item putRight(Item) getRight -> Item peekLeft -> Item peekRight -> Item Stack push(Item) pop -> Item top -> Item isEmpty -> bool clear length -> int Set Item: == add(Item) remove(Item) contains(Item) -> bool == -> bool != -> bool <= -> bool < -> bool >= -> bool > -> bool +=(Set) -> self +=(Item) -> self -=(Set) -> self -=(Item) -> self *=(Set) -> self *=(Item) -> self isEmpty -> bool clear length -> int PriorityQueue : Queue Item: == <= >= < > != put(Item) get -> Item Dictionary Key: == hash insert(Key,Data) lookup(Key) -> Data update(Key,Data) remove(Key) contains(Key) -> bool isEmpty -> bool clear length -> int Bag add(Item) replace(Cursor,Item) remove(Cursor) isEmpty -> bool clear length -> int Sequence prepend(Sequence) -> self prepend(Item) -> self append(Sequence) -> self append(Item) -> self head -> Item removeHead isEmpty -> bool clear length -> int