@author sibyjosek@gmail.com |
The Queue Class |
public class Queue { // outer class
class Data{ // an inner class
int d;void show(){
System.out.print(" (" + d + ") ");
}
Data(int x){ d=x;}
}
Data q[];
int front, rear;
int mSize;
final String nullQ = "Empty Queue !!!",
fullQ = "...Queue is Full !!!";
public Queue(int maximumSize){
mSize=maximumSize;
q=new Data[mSize];
front=rear=-1;
}
boolean isEmpty(){ return front==-1; }
boolean isFull(){ return front != -1 & (rear+1) % mSize == front; }
Data first() throws Throwable{
if (isEmpty()) throw new Throwable(nullQ);
return q[front];
}
Data last() throws Throwable{
if (isEmpty()) throw new Throwable(nullQ);
return q[rear];
}
void add(Data data) throws Throwable{
if(front==-1)
front=rear=0;
else{
if (isFull()) throw new Throwable(fullQ);
rear = (rear + 1) % mSize;
}
q[rear]=data;
}
void add(int data) throws Throwable{
add(new Data(data));
}
Data delete() throws Throwable{
if(isEmpty()) throw new Throwable(nullQ);
Data d=q[front];
if(front==rear)
front=rear=-1;
else
front = (front + 1) % mSize;
return d;
}
void show()throws Throwable{
if(isEmpty()) throw new Throwable(nullQ);
System.out.println();
int i=front;
do{
if( i == rear){
q[i].show();
break;
}
q[i].show();
i++;
i %= mSize;
}while(true);
}
protected void finalize() throws Throwable {
super.finalize();
q=null;
}
}
|
Main - The Test Driver Class |
public class Main {
public static void main(String[] args) {
Queue q=new Queue (5);
try{
q.add(10);
q.add(55);
q.add(66);
q.add(13);
q.add(5);
q.add(10001);
}catch (Throwable e) {
System.out.println(e.getMessage());
}
try{
q.show(); //show current queue
System.out.println("\nDeleting");
q.delete().show(); // show deleted item
q.delete().show();
q.delete().show();
q.delete().show();
q.delete().show(); // all 5 items removed
q.add(555555);
q.add(555);
q.add(5);
System.out.println("\nNew Queue ");
q.show(); // show current queue
}catch (Throwable e) {
System.out.println(e.getMessage());
}
}
}
|
The Output |
...Queue is Full !!! (10) (55) (66) (13) (5) Deleting (10) (55) (66) (13) (5) New Queue (555555) (555) (5) |
Java, JSP, Servelet, C, C++, VC++, VB6, VB.NET, C#.NET, ASP.NET, HTML, VB/JavaScript, PHP, Python and Django
Pages
- Creative Writing Workshop at Hill Blooms School
- My Photos
- Sorting in C
- C and C++
- VB6 File Handling
- Hardware - Trouble Shooting
- VIJEESH
- Linked List in Java
- Queue in Java using Array Data Structure
- The Queue Class
- English Grammar by My Teacher.
- C tips and Recursion
- Abstract Class
- Dynamic Polimorphism (Abastract Class) in C++
Queue in Java using Array Data Structure
Subscribe to:
Comments (Atom)