Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //inv : size >= 0
- public class ArrayQueueModule {
- private final static int MAX_SIZE = 6;
- private static Object[] elements = new Object[MAX_SIZE];
- private static int head = 0;
- private static int tail = -1;
- private static int size = 0;
- //pre: size > 0
- //post: return first element in queue
- public static Object element() {
- assert size() > 0;
- return elements[head];
- }
- //pre: size > 0
- //post: return first element in queue, remove it from queue
- public static Object dequeue() {
- assert size > 0;
- size --;
- return elements[(head++) % elements.length];
- }
- //pre: true
- //post: return size == 0
- public static boolean isEmpty() {
- return size == 0;
- }
- //pre: true
- //post: return count of elements in queue
- public static int size() {
- return size;
- }
- //pre: true
- //post: element() = e
- public static void enqueue(java.lang.Object e) {
- ensureCapasity(size + 1);
- size++;
- elements[++tail % elements.length] = e;
- }
- //pre: true
- //post: size == 0
- public static void clear() {
- size = 0;
- head = 0;
- tail = -1;
- elements = null;
- elements = new Object[MAX_SIZE];
- }
- //pre: capasity = size
- //post: if (capasity > elements.length) elements.length = 2 * elements.length
- private static void ensureCapasity(int capacity) {
- if (capacity <= elements.length) {
- return;
- }
- Object[] temp = new Object[2 * elements.length];
- for (int i = head; i < head + size; i++) {
- temp[i - head] = elements[i % elements.length];
- }
- elements = null;
- elements = temp;
- temp = null;
- head = 0;
- tail = size - 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement