Answer:
Code is given below:
Explanation:
ode.java:
public class Node
{
String data;
Node next;
Node prev;
public Node(String data,Node next, Node prev){
this.next=next;
this.data=data;
this.prev=prev;
}
public Node(){
}
public String getData(){
return data;
}
public void setData(String data){
this.data=data;
}
public Node getNext(){
return next;
}
public void setNext(Node next){
this.next=next;
}
public Node getPrev(){
return prev;
}
public void setPrev(Node prev){
this.prev=prev;
}
}
Linked Queue.java:
public class LinkedQueues {
     Node head ;
    Node tail;
int size=0;
public Oueues(){
    this.head=null;
    this.tail=null;
}
 public boolean isEmpty()
{
    return head == tail;
}    
  public int getSize()
     {
           return size;
   }    
  public void insert(String data){
    Node tmp = new Node(data,null,null);
     tmp.data=data;
     tmp.next=null;
     if(head==null){
         head=tail=tmp;
         head.prev=null;
     }
     else{
         tail.next=tmp;
         tmp.prev=tail;
         tail=tmp;
  }    
  }
  public String remove(){
   if(head.next==tail)
       return null;// list empty
   Node tmp=head.next;
   head.next=tmp.next;
   tmp.next.prev=head;
   list();
   return tmp.data;
  }
  public void list(){
      System.out.println("Queues");
      if(size==0){
          System.out.println("İs Empty");
      }
     Node tmp=head;
     while(tmp !=tail.getNext()){
         System.out.println(tmp.getVeri()+" ");
       tmp= tmp.getNext();
     }
      System.out.println();
  }
Linkedstack.java:
public class LinkedStack {
Node head = null;
Node tail = null;
int size=0;
      public int getSize() {
     return size;
       }
   public boolean isEmpty()
       {
    return head == null;
    }    
  public void Push(String data) {
     tail = head;
    head = new Node(data,null,null);
    head.data=data;
    head.next= tail;
    head.prev = null;
    if(tail != null) {
        tail.prev=head;
    }
    size++;
  }
  public void Pop() {
    if (!isEmpty()) {
        head = head.next;   // delete first node
        size--;
    } else {
        System.out.println("İs Empty");
    }
}
   public void Top() {
    Node tmp = head;
    while (tmp != null) {
        System.out.println(tmp.getData());
        tmp = tmp.getNext();
    }
}
  }
ArrayBasedQueue.java
import java.util.LinkedList;
import java.util.Queue;
  
public class ArrayBasedQueue
{
  public static void main(String[] args)
  {
    Queue<Integer> q = new LinkedList<>();
  
    // Adds elements {0, 1, 2, 3, 4} to queue
    for (int i=0; i<5; i++)
     q.add(i);
  
    // Display contents of the queue.
    System.out.println("Elements of queue-"+q);
    int removedele = q.remove();
    System.out.println("removed element-" + removedele);
  
    System.out.println(q);
    int head = q.peek();
    System.out.println("head of queue-" + head);
  
    int size = q.size();
    System.out.println("Size of queue-" + size);
  }
}
ArrayBasedStack.java:
import java.io.*;
import java.util.*;
  
public class ArrayBasedStack
{
static void stack_push(Stack<Integer> stack)
{
for(int i = 0; i < 5; i++)
{
stack.push(i);
}
}
  
// Popping element from the top of the stack
static void stack_pop(Stack<Integer> stack)
{
System.out.println("Pop :");
  
for(int i = 0; i < 5; i++)
{
Integer y = (Integer) stack.pop();
System.out.println(y);
}
}
  }
TestTimes.java:
public class TestTimes implements TestTimesInterface
{
  public static enum TimeUnits {};
  public static enum MemoryUnits{};
}
Driver.java:
public class driver
{
public static void main(String args[])
{
    Scanner s = new Scanner(System.in);
    LinkedStack y = new LinkedStack();
    LinkedQueues k = new LinkedQueues();
    ArrayBasedStack as=new ArrayBasedStack();
      ArrayBasedQueue as=new ArrayBasedQueue();
    FileWriter fwy;
    FileWriter fwk;
    File stack = new File("stack.txt");
    if (!stack.exists()) {
        stack.createNewFile();
    } else {
        System.out.println("already exists ");
    }
    BufferedReader reader = null;
    reader = new BufferedReader(new FileReader(stack));
    String line = reader.readLine();
    while (line != null) {
        y.Push(line = reader.readLine());
        System.out.println(line);
    }
    File queue = new File("queue.txt");
    if (!queue.exists()) {
        queue.createNewFile();
    } else {
        System.out.println("already exists ");
    }
    BufferedReader read = null;
    read = new BufferedReader(new FileReader(queue));
    String lines = read.readLine();
    while (lines != null) {
        lines = read.readLine();
        k.insert(lines);
        System.out.println(lines);
    }
int choice;
      System.out.println("1. Stack out- queue add");
      System.out.println("2. Stack add- queue out");
      System.out.println("3. Stack and queue ");
      System.out.println("4. File writer");
      choice = s.nextInt();
    switch (choice) {
        case 1:
            k.insert(s.next());
            k.list();
            y.pop();
            break;
        case 2:
          y.Push(s.next());
            y.Top();
          k.remove();
            break;
        case 3:
            y.Top();
            k.list();
            break;
        case 4:
            fwy = new FileWriter(stack);
            Node no = y.head;
            while (no.next != null) {
                fwy.write("\n" + no.data);
                no = no.next;
            }
            fwy.flush();
            fwy.close();
            fwk = new FileWriter(queue);
            Node noo = k.head;
            while (noo.next != null) {
                fwk.write("\n" + noo.data);
                noo = noo.next;
            }
            fwk.flush();
            fwk.close();
            break;
         }
  
}
}