001package components.map;
002
003import java.lang.reflect.Constructor;
004import java.util.Comparator;
005import java.util.Iterator;
006
007import components.binarytree.BinaryTree;
008import components.binarytree.BinaryTree1;
009
010/**
011 * {@code Map} represented as a {@link BinaryTree} (maintained as a binary
012 * search tree) of pairs with implementations of primary methods.
013 *
014 * @param <K>
015 *            type of {@code Map} domain (key) entries
016 * @param <V>
017 *            type of {@code Map} range (associated value) entries
018 * @mathdefinitions <pre>
019 * IS_TOTAL_PREORDER (
020 *   r: binary relation on K
021 *  ) : boolean is
022 *  for all x, y, z: K
023 *   ((r(x, y) or r(y, x))  and
024 *    (if (r(x, y) and r(y, z)) then r(x, z)))
025 *
026 * IS_BST(
027 *   tree: binary tree of (K, V),
028 *   r: binary relation on K
029 *  ): boolean satisfies
030 *  [tree satisfies the binary search tree ordering property according to the
031 *   relation r on the keys of its (K, V) labels and has no duplicate key
032 *   values among its (K, V) labels]
033 * </pre>
034 * @convention <pre>
035 * IS_TOTAL_PREORDER([relation computed by $this.order.compare method]  and
036 * IS_BST($this.pairsTree, $this.order)
037 * </pre>
038 * @correspondence this = labels($this.pairsTree)
039 */
040public class Map3<K, V> extends MapSecondary<K, V> {
041
042    /*
043     * 2221/2231 assignment code deleted.
044     */
045
046}