diff --git a/src/edu/caltech/cs2/coloring/DSatur.java b/src/edu/caltech/cs2/coloring/DSatur.java index 49ced3ff6373829d284b837b6bff148446618f32..17c67c00c23c6e424893c23c9059cf84a215d91b 100644 --- a/src/edu/caltech/cs2/coloring/DSatur.java +++ b/src/edu/caltech/cs2/coloring/DSatur.java @@ -1,10 +1,7 @@ package edu.caltech.cs2.coloring; -import edu.caltech.cs2.datastructures.ChainingHashDictionary; import edu.caltech.cs2.datastructures.ChainingHashSet; import edu.caltech.cs2.datastructures.MinFourHeap; -import edu.caltech.cs2.datastructures.MoveToFrontDictionary; -import edu.caltech.cs2.interfaces.IDictionary; import edu.caltech.cs2.interfaces.IPriorityQueue; import edu.caltech.cs2.interfaces.ISet; diff --git a/src/edu/caltech/cs2/coloring/Program.java b/src/edu/caltech/cs2/coloring/Program.java index 3b663e41dd45b521b0b8b95c1e2886f1a9d6a63f..e578b55f55a9093f02b5527eaae9e211991c24e8 100644 --- a/src/edu/caltech/cs2/coloring/Program.java +++ b/src/edu/caltech/cs2/coloring/Program.java @@ -5,7 +5,6 @@ import edu.caltech.cs2.datastructures.ChainingHashSet; import edu.caltech.cs2.interfaces.IDeque; import edu.caltech.cs2.interfaces.IDictionary; import edu.caltech.cs2.interfaces.ISet; -import edu.caltech.cs2.interfaces.IStack; import java.util.Iterator; diff --git a/src/edu/caltech/cs2/datastructures/ArrayDeque.java b/src/edu/caltech/cs2/datastructures/ArrayDeque.java new file mode 100644 index 0000000000000000000000000000000000000000..4a7d0bfa04aae5451c96f4110a5e3af3ff776b7e --- /dev/null +++ b/src/edu/caltech/cs2/datastructures/ArrayDeque.java @@ -0,0 +1,76 @@ +package edu.caltech.cs2.datastructures; + +import edu.caltech.cs2.interfaces.IDeque; +import edu.caltech.cs2.interfaces.IQueue; +import edu.caltech.cs2.interfaces.IStack; + +import java.util.Iterator; + +public class ArrayDeque<E> implements IDeque<E>, IQueue<E>, IStack<E> { + + @Override + public void addFront(E e) { + + } + + @Override + public void addBack(E e) { + + } + + @Override + public E removeFront() { + return null; + } + + @Override + public E removeBack() { + return null; + } + + @Override + public boolean enqueue(E e) { + return false; + } + + @Override + public E dequeue() { + return null; + } + + @Override + public boolean push(E e) { + return false; + } + + @Override + public E pop() { + return null; + } + + @Override + public E peekFront() { + return null; + } + + @Override + public E peekBack() { + return null; + } + + @Override + public E peek() { + return null; + } + + @Override + public Iterator<E> iterator() { + return null; + } + + @Override + public int size() { + return 0; + } +} + diff --git a/src/edu/caltech/cs2/datastructures/ChainingHashDictionary.java b/src/edu/caltech/cs2/datastructures/ChainingHashDictionary.java new file mode 100644 index 0000000000000000000000000000000000000000..7a771e4d3f7f200eb6b8cb1892479a097db1d560 --- /dev/null +++ b/src/edu/caltech/cs2/datastructures/ChainingHashDictionary.java @@ -0,0 +1,78 @@ +package edu.caltech.cs2.datastructures; + +import edu.caltech.cs2.interfaces.ICollection; +import edu.caltech.cs2.interfaces.IDeque; +import edu.caltech.cs2.interfaces.IDictionary; +import edu.caltech.cs2.interfaces.IQueue; + +import java.util.Iterator; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public class ChainingHashDictionary<K, V> implements IDictionary<K, V> { + private Supplier<IDictionary<K, V>> chain; + + public ChainingHashDictionary(Supplier<IDictionary<K, V>> chain) { + // student: TODO fill me in! + } + + /** + * @param key + * @return value corresponding to key + */ + @Override + public V get(K key) { + return null; + } + + @Override + public V remove(K key) { + return null; + } + + @Override + public V put(K key, V value) { + return null; + } + + @Override + public boolean containsKey(K key) { + return false; + } + + /** + * @param value + * @return true if the HashDictionary contains a key-value pair with + * this value, and false otherwise + */ + @Override + public boolean containsValue(V value) { + return false; + } + + /** + * @return number of key-value pairs in the HashDictionary + */ + @Override + public int size() { + return 0; + } + + @Override + public ICollection<K> keys() { + return null; + } + + @Override + public ICollection<V> values() { + return null; + } + + /** + * @return An iterator for all entries in the HashDictionary + */ + @Override + public Iterator<K> iterator() { + return null; + } +} diff --git a/src/edu/caltech/cs2/datastructures/LinkedDeque.java b/src/edu/caltech/cs2/datastructures/LinkedDeque.java new file mode 100644 index 0000000000000000000000000000000000000000..212e5ffa283d582c33c6bdf9a15e006bb54e6a49 --- /dev/null +++ b/src/edu/caltech/cs2/datastructures/LinkedDeque.java @@ -0,0 +1,75 @@ +package edu.caltech.cs2.datastructures; + +import edu.caltech.cs2.interfaces.IDeque; +import edu.caltech.cs2.interfaces.IQueue; +import edu.caltech.cs2.interfaces.IStack; + +import java.util.Iterator; + +public class LinkedDeque<E> implements IDeque<E>, IQueue<E>, IStack<E> { + + @Override + public void addFront(E e) { + + } + + @Override + public void addBack(E e) { + + } + + @Override + public E removeFront() { + return null; + } + + @Override + public E removeBack() { + return null; + } + + @Override + public boolean enqueue(E e) { + return false; + } + + @Override + public E dequeue() { + return null; + } + + @Override + public boolean push(E e) { + return false; + } + + @Override + public E pop() { + return null; + } + + @Override + public E peekFront() { + return null; + } + + @Override + public E peekBack() { + return null; + } + + @Override + public E peek() { + return null; + } + + @Override + public Iterator<E> iterator() { + return null; + } + + @Override + public int size() { + return 0; + } +} diff --git a/src/edu/caltech/cs2/datastructures/MoveToFrontDictionary.java b/src/edu/caltech/cs2/datastructures/MoveToFrontDictionary.java new file mode 100644 index 0000000000000000000000000000000000000000..1f7a8130aed200b712d164e179fdd69cf52cf5fe --- /dev/null +++ b/src/edu/caltech/cs2/datastructures/MoveToFrontDictionary.java @@ -0,0 +1,57 @@ +package edu.caltech.cs2.datastructures; + +import edu.caltech.cs2.interfaces.ICollection; +import edu.caltech.cs2.interfaces.IDictionary; + +import java.util.Iterator; + +public class MoveToFrontDictionary<K, V> implements IDictionary<K,V> { + + public MoveToFrontDictionary() { + // student: TODO fill this in + } + + @Override + public V remove(K key) { + return null; + } + + @Override + public V put(K key, V value) { + return null; + } + + @Override + public boolean containsKey(K key) { + return this.get(key) != null; + } + + @Override + public boolean containsValue(V value) { + return this.values().contains(value); + } + + @Override + public int size() { + return 0; + } + + @Override + public ICollection<K> keys() { + return null; + } + + @Override + public ICollection<V> values() { + return null; + } + + public V get(K key) { + return null; + } + + @Override + public Iterator<K> iterator() { + return null; + } +} diff --git a/tests/edu/caltech/cs2/helpers/RuntimeCounter.java b/tests/edu/caltech/cs2/helpers/RuntimeCounter.java new file mode 100644 index 0000000000000000000000000000000000000000..960c1697bf234326d29712262d8ad5457dcadbb6 --- /dev/null +++ b/tests/edu/caltech/cs2/helpers/RuntimeCounter.java @@ -0,0 +1,9 @@ +package edu.caltech.cs2.helpers; + +public class RuntimeCounter { + public static int NUM_CALLS = 0; + + public static void inc() { + NUM_CALLS++; + } +}