Problem:
Write a program that implements an ArrayQueue in java.
Output:
Not available.
Solution:
01 | public class ArrayQueue<E> implements Queue<E> { |
02 | private E[] elements; |
03 | private int front; |
04 | private int back; |
05 | private static final int INITIAL_CAPACITY = 4 ; |
06 |
07 | public ArrayQueue() { |
08 | elements = (E[]) new Object[INITIAL_CAPACITY]; |
09 | } |
10 |
11 | public ArrayQueue( int capacity) { |
12 | elements = (E[]) new Object[capacity]; |
13 | } |
14 |
15 | public void add(E element) { |
16 | if (size() == elements.length - 1 ) { |
17 | resize(); |
18 | } |
19 | elements[back] = element; |
20 | if (back < elements.length - 1 ) { |
21 | ++back; |
22 | } else { |
23 | back = 0 ; //wrap |
24 | } |
25 | } |
26 |
27 | public E element() { |
28 | if (size() == 0 ) { |
29 | throw new java.util.NoSuchElementException(); |
30 | } |
31 | return elements[front]; |
32 | } |
33 |
34 | public boolean isEmpty() { |
35 | return (size() == 0 ); |
36 | } |
37 |
38 | public E remove() { |
39 | if (size() == 0 ) { |
40 | throw new java.util.NoSuchElementException(); |
41 | } |
42 | E element = elements[front]; |
43 | elements[front] = null ; |
44 | ++front; |
45 | if (front == back) { // queue is empty |
46 | front = back = 0 ; |
47 | } |
No comments :
Post a Comment