Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////////////////////////////////////////////////////////////// IntQueue ADT (interface)
- public interface IntQueue {
- /**
- * Adds an element to the end of the queue.
- *
- * @param value element to be added to the end of the queue
- */
- public void enqueue(int value);
- /**
- * Removes and returns the front most element of the queue
- *
- * @return the front most element of the queue
- * @throws Exception if the queue is empty
- */
- public int dequeue() throws Exception;
- /**
- * @return the size of the queue
- */
- public int getSize();
- /**
- * Removes all elements from the queue
- */
- public void clear();
- /**
- * @return a String representation of the queue
- */
- @Override
- public String toString();
- }
- /////////////////////////////////////////////////////////////////////////// ArrayIntQueue Implementation
- public class ArrayIntQueue implements IntQueue{
- private int[] values;
- private int size;
- private int front;
- private int back;
- public ArrayIntQueue(){
- values=new int[10];
- size=0;
- front=0;
- back=9;
- }
- @Override
- public void enqueue(int value) {
- if (size==values.length){
- int i=front, j=0;
- int[] tmp=new int[2*values.length];
- do {
- tmp[j++]=values[i++];
- i%=values.length;
- } while (i!=front);
- values=tmp;
- front=0;
- back=j-1;
- }
- back=(++back)%values.length;
- values[back]=value;
- size++;
- }
- @Override
- public int dequeue() throws Exception {
- if (size==0){
- throw new Exception("The queue is empty.");
- }
- int result=values[front++];
- front%=values.length;
- size--;
- return result;
- }
- @Override
- public int getSize() {
- return size;
- }
- @Override
- public void clear() {
- values=new int[10];
- size=0;
- front=0;
- back=9;
- }
- @Override
- public String toString(){
- String res="front[";
- int i=front, j=0, c=0;
- while (c<size) {
- res+=values[i++];
- i%=values.length;
- if (c<size-1){
- res+=", ";
- }
- c++;
- }
- res+="]back";
- return res;
- }
- }
- ///////////////////////////////////////////////////////////////////////////// TestClass
- public class testClass {
- public static void main(String[] args){
- IntQueue myQueue=new ArrayIntQueue();
- try {
- System.out.println(myQueue.dequeue());
- } catch (Exception ex){
- System.out.println(ex.getMessage());
- }
- for (int i=0; i<8; i++){
- myQueue.enqueue(i+1);
- }
- System.out.println(myQueue);
- System.out.println("Size: "+myQueue.getSize()+"\n");
- try {
- myQueue.dequeue();
- myQueue.dequeue();
- myQueue.dequeue();
- } catch (Exception ex){
- System.out.println(ex.getMessage());
- }
- System.out.println(myQueue);
- System.out.println("Size: "+myQueue.getSize()+"\n");
- for (int i=0; i<9; i++){
- myQueue.enqueue(i+1);
- myQueue.enqueue(i+1);
- try {
- myQueue.dequeue();
- myQueue.dequeue();
- } catch (Exception ex){
- System.out.println(ex.getMessage());
- }
- System.out.println(" iteration #"+(i+1));
- System.out.println(myQueue);
- System.out.println("Size: "+myQueue.getSize());
- }
- System.out.println();
- myQueue.clear();
- System.out.println(myQueue);
- System.out.println("Size: "+myQueue.getSize()+"\n");
- for (int i=0; i<22; i++){
- myQueue.enqueue(i+1);
- }
- System.out.println(myQueue);
- System.out.println("Size: "+myQueue.getSize()+"\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment