1 package baseCode.dataStructure;
2
3 /***
4 * Simple Queue implementation.
5 * <p>
6 * Copyright (c) 2004
7 * </p>
8 * <p>
9 * Institution: Columbia University
10 * </p>
11 *
12 * @author Paul Pavlidis
13 * @version $Id: Queue.java,v 1.4 2004/07/29 08:38:49 pavlidis Exp $
14 * @deprecated -- use java.util.List instead.
15 */
16 public class Queue {
17
18 private Object[] queue;
19 private int front;
20 private int back;
21 private int currentSize;
22
23 private final static int DEFAULTCAPACITY = 10000;
24
25 public Queue() {
26 this( DEFAULTCAPACITY );
27 }
28
29 public Queue( int capacity ) {
30 queue = new Object[capacity];
31 makeEmpty();
32 }
33
34 /***
35 * @param obj Object
36 */
37 public void enqueue( Object obj ) {
38 if ( isFull() ) {
39 throw new IndexOutOfBoundsException(
40 "Attempt to enqueue in a full queue" );
41 }
42 back = increment( back );
43 queue[back] = obj;
44 currentSize++;
45 }
46
47 /***
48 * @return Object
49 */
50 public Object dequeue() {
51 if ( isEmpty() ) {
52 return null;
53 }
54 currentSize--;
55 Object f = queue[front];
56 queue[front] = null;
57 front = increment( front );
58 return f;
59 }
60
61 /***
62 * @return boolean
63 */
64 public boolean isEmpty() {
65 return currentSize == 0;
66 }
67
68 /***
69 * @return boolean
70 */
71 public boolean isFull() {
72 return queue.length == currentSize;
73 }
74
75 /***
76 *
77 */
78 public void makeEmpty() {
79 currentSize = 0;
80 front = 0;
81 back = -1;
82 }
83
84 private int increment( int i ) {
85 if ( ++i == queue.length ) {
86 i = 0;
87 }
88 return i;
89 }
90 }