package adsa;
import java.util.Scanner;
interface DQArrADT{
void linsert();
void rinsert();
void ldelete();
void rdelete();
void display();
}
public class DQArr implements DQArrADT{
int dq[],size,front,rear;
Scanner s=new Scanner(System.in);
public DQArr() throws Exception
{
System.out.println("Enter the Deque size");
size=s.nextInt();
dq=new int[size];
front=-1;rear=-1;
}
public void linsert()
{
if(((front==0)&&(rear==dq.length-1))||(rear==front-1))
System.out.println("Deque is full");
else if(front==-1)
{
front=0;
rear=0;
}
else if(front==0)
front=(dq.length-1);
else
front=front-1;
System.out.println("Enter the element into deque at left end :");
int item=s.nextInt();
dq[front]=item;
}
public void rinsert()
{
if(((front==0)&&rear==dq.length-1)||(rear==front-1))
System.out.println("Deque is full");
else if(front==-1)
{
front=0;
rear=0;
}
else if(rear==dq.length-1){
rear=0;
System.out.println("rear is changed to "+rear);}
else
rear=rear+1;
System.out.println("Enter the element into the Deque at right end :");
int item=s.nextInt();
dq[rear]=item;
}
public void ldelete()
{
if(front==-1)
System.out.println("Deque underflow");
else
{
System.out.println("Deleted item at leftend is :"+dq[front]);
if(front==rear)//one element
{
front=-1;rear=-1;
}
else if(front==dq.length-1)
front=0;
else front=front+1;
}
}
public void rdelete(){
if(front==-1)System.out.println("Deque underflow");
else
{
System.out.println("Deleted item at right end :"+dq[rear]);
if(front==rear){//one element
front=-1;rear=-1;
}
else if(rear==0){
rear=dq.length-1;
}
else rear=rear-1;
}
}
public void display()
{
if(front==-1)
System.out.println("Deque empty");
System.out.println("Deque elements are:");
if(front<=rear)
{
for(int i=front;i<=rear;i++)
System.out.print(" "+dq[i]);
}
else{
for(int i=front;i<dq.length;i++)
System.out.print(" "+dq[i]);
for(int i=0;i<=rear;i++)
System.out.print(" "+dq[i]);
}
}
public static void main(String args[]) throws Exception{
System.out.println("Linear Dequeu Array ADT");
Scanner s=new Scanner(System.in);
DQArr d=new DQArr();
String ch="y";
while(ch.equalsIgnoreCase("y")){
System.out.println("Deque operations :");
System.out.println("1. DQ LInsert 2. DQ RInsert 3. DQ LDelete 4. DQ RDelete 5. Display 6.Exit :");
System.out.println("Enter the option :");
int opt=s.nextInt();
switch(opt){
case 1: d.linsert();
break;
case 2:d.rinsert();
break;
case 3:d.ldelete();
break;
case 4:d.rdelete();
break;
case 5:d.display();
break;
case 6:System.exit(0);
default:System.out.println("Invalid option!!!");
}
System.out.println("Do you want to continue(y/N) :");
ch=s.next();
}
}
}
No comments:
Post a Comment