A deque doubleended queue is a data structure that allows yo
A “deque (double-ended queue)” is a data structure that allows you to push and pop from one end (tail) like a stack, and dequeue from the other end (front) like a queue. Create a LinkedListed-based unbounded Deque class that provide the following methods: push, pop, dequeue, and size(). You do not need to enlarge in the implementation. A main function should be created to test each of those methods.
Here is the Linked List Node Class that the deque can be based on:
Solution
 package listclasses;
 public class singlelinkedlist {
    int data;
    singlelinkedlist next;
    singlelinkedlist(int data){
        this.data=data;
       
    }
    singlelinkedlist(int data,singlelinkedlist next){
        this.data=data;
        this.next=next;
    }
    public String tostring(){
        return data+\"\";
    }
 }
 
 
 mainclass:
 
 package listclasses;
 import java.util.*;
 public class singlelinkedlistmain {
 static singlelinkedlist head;
 static int size;
 static int rear;
 static {
    head=null;
    size=0;
    rear=5;
 }
    public static void main(String[] args) {
      
        enque(10);
        enque(20);
        enque(30);
        enque(40);
        enque(50);
 
   
    display();
    System.out.println(\"\ height:\"+size);
    dequee();
      
    display();
   
    pop();
    display();
    }
 public static void enque(int data){
        if(size<rear){
        singlelinkedlist curnt=head;
        if(head==null){
            head=new singlelinkedlist(data,null);
            size++;
           
        }else{
            while(curnt.next!=null){
                curnt=curnt.next;
            }
            singlelinkedlist newlist=new singlelinkedlist(data,null);
            curnt.next=newlist;
            size++;
        }
        }else{
            System.out.println(\"queeu is full:\");
        }
       
    }
 
 public static void dequee(){
        if(head==null){
            System.out.println(\"queue is empty:\");
            return;
        }
        if(head.next!=null){
            head=head.next;
            size--;
        }
       
    }
 public static void push(int data){
        if(size<rear){
        if(head==null){
            head=new singlelinkedlist(data,null);
           
        }else{
            singlelinkedlist curent=head;
            while(curent.next!=null){
                curent=curent.next;
            }
            singlelinkedlist newlist=new singlelinkedlist(data,null);
            curent.next=newlist;
        }
           
        size++;}else
            System.out.println(\"\ stack overflow\");
    }
    public static void pop(){
        if(head==null){
            System.out.println(\"\ stack undflow\");
            return;
        }
        if(head.next==null){
            head=null;
            size--;
            return;
        }
              
        singlelinkedlist curent=head;
        while(curent.next.next!=null){
            curent=curent.next;
        }
        curent.next=null;
        size--;
          
    }
 public static void display(){
        singlelinkedlist curent=head;
        while(curent!=null){
            System.out.print(curent.data+\" \");
            curent=curent.next;
        }
        //System.out.println(\"\ \"+size);
       
    }
 
 }
 



