Queue

Queues

Queue

  • A queue is an abstract data type, like a stack.
  • A collection of entities that are maintained in a sequence.
  • First in First out (FIFO)

(Source: Data Structures & Algorithms in Java 2nd Edition)

Implements a Queue:

class Queue {
    private int maxSize; 
    private long[] queArray; 
    private int front; 
    private int rear; 
    private int nItems;
	
	// constructor
	public Queue(int s) {
		maxSize = s; 
		queArray = new long[maxSize]; 
		front = 0; 
		rear = -1; 
		nItems = 0;
	}
	
	// put item at rear of queue
	public void insert(long j) {
		// deal with wraparound
		if(rear == maxSize-1) {
			rear = -1;
		}
		queArray[++rear] = j; // increment rear and insert
		nItems++; // one more item
	}
	
	// take item from front of queue
	public long remove() {
		long temp = queArray[front++]; // get value and incr front
		// deal with wraparound
		if(front == maxSize) {
			front = 0;
		}
		nItems--; // one less item
		return temp;
	}
	
	// peek at front of queue
	public long peekFront() {
		return queArray[front];
	}
	
	// true if queue is empty
	public boolean isEmpty() {
		return (nItems==0);
	}
	
	// true if queue is full
	public boolean isFull() {
		return (nItems==maxSize);
	}
	
	// number of items in queue
	public int size() {
		return nItems;
	}
}

留言