//Queue implementation using array and generics
interface QueueADT<E>
{
void enqueue(E data);
E dequeue();
E peek();
int size();
boolean isEmpty();
void traverse();
}
class Book
{
private String name;
private double price;
public Book()//type number order
{
name="null";
price=0;
}
public Book(String name, double price)
{
this.name=name;
this.price=price;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setPrice(double price)
{
this.price=price;
}
public double getPrice()
{
return price;
}
public String toString()
{
return "Book{"+"Name="+" "+name+" "+"Price= "+" "+price+"}\n";
}
}
class QueueUsingArr
{
public static void main(String args[])
{
Book[] arr=new Book[5];
QueueImp<Book> queue=new QueueImp<>(arr);
Book b1=new Book("Java",100);
Book b2=new Book("DSA",200);
//Book b3=new Book("DBMS",300);
//Book b4=new Book("Web",400);
//Book b5=new Book("Tech",400);
//Book b6=new Book("Tech",400);
queue.enqueue(b1);
queue.enqueue(b2);
//queue.enqueue(b3);
//queue.enqueue(b4);
//queue.enqueue(b5);
//queue.enqueue(b6);
queue.traverse();
System.out.println("\nQueue after deleting 1 element ");
queue.dequeue();
queue.traverse();
System.out.println("\nQueue first element:"+queue.peek());
}
}
class QueueImp<E> implements QueueADT<E>
{
private int front;
private int rear;
private int size;
private E[] arr;
public QueueImp(E[] arr)
{
front=0;
rear=0;
size=0;
this.arr=arr;
}
public void enqueue(E data)
{
if(size!=arr.length)
{
arr[rear]=data;
rear++;
size++;
}
else
{
System.out.println("Queue Overflow");
}
}
public E dequeue()
{
E response=null;
if(!isEmpty())
{
response=arr[front];
front++;
size--;
}
else
{
System.out.println("Queue Underflow");
}
return response;
}
public boolean isEmpty()
{
return size==0;
}
public E peek()
{
E response=null;
if(!isEmpty())
{
response=arr[front];
}
return response;
}
public int size()
{
return size;
}
public void traverse()
{
//System.out.print("front"+" "+"<----" );
for(int i=front; i<rear; i++)
{
System.out.print(" "+arr[i]);
}
// System.out.print("<----"+"rear");
}
}
0 Comments