In a Java DeQue, how would I complete the methods to accomplish these functions?
ID: 3771131 • Letter: I
Question
In a Java DeQue, how would I complete the methods to accomplish these functions? I must use this format, no substitutes.
Thanks!
public class DeQueStub<E> {
public void insertBack(E e) {
Node<E> newNode = new Node<>(e);
public void insertFront( ) {
public E removeBack() {
return null;
}//removeback
public E removeFront() {
return null;
}//removefront
public static void main(String[] args) {
DeQueStub<Integer> dq = new DeQueStub<>();
System.out.println("Removing back value " + dq.removeBack());
System.out.println("Removing front value " + dq.removeFront(23));
dq.insertBack(23);
dq.insertBack(34);
System.out.println("Removing front value " + dq.removeFront());
dq.insertBack(55);
dq.insertFront(12);
dq.insertFront(17);
System.out.println("Removing front value " + dq.removeFront());
System.out.println("Removing back value " + dq.removeBack());
System.out.println("Removing front value " + dq.removeFront());
System.out.println("Removing back value " + dq.removeBack());
System.out.println("Removing back value " + dq.removeBack());
System.out.println("Removing back value " + dq.removeFront());
}//main
}//class DeQue
class Node<E> {
Node<E> tail;
Node<E> head;
public Node(E e) {
E element = e;
}
}//classnode
//}//classnode
Explanation / Answer
public class MyDeque{ public Node first; public Node last; public MyDeque() { } /* Method will insert a node in the front of the queue */ public void insertFront(E element) { Node newNode = new Node(element); newNode.element = element; if(last == null){ first = last = newNode; } else{ first.prev = newNode; newNode.prev = first; first = newNode; } } /* Method will insert a node in the back of the queue */ public void insertBack(E element) { Node newNode = new Node(element); newNode.element = element; if(last == null){ first = last = newNode; } else{ last.next = newNode; newNode.prev = last; last = newNode; } } /* Method will remove front-most node in queue */ public E removeFront() { if(last == null){ System.out.println("Nothing to remove"); } else{ first.next = first; }//else if(last != null){ return first.element; } else return null; } /* Method will remove last node in queue */ public E removeBack() { if(last == null){ System.out.println("Nothing to remove"); } else{ last.prev = last; } if(last != null){ return last.element; } else return null; } public static void main(String[] args){ MyDeque dq = new MyDeque(); System.out.println("Removing back value " + dq.removeBack()); System.out.println("Removing front value " + dq.removeFront()); dq.insertBack(23); dq.insertBack(34); System.out.println("Removing front value " + dq.removeFront()); dq.insertBack(55); dq.insertFront(12); dq.insertFront(17); System.out.println("Removing front value " + dq.removeFront()); System.out.println("Removing Back value " + dq.removeBack()); System.out.println("Removing front value " + dq.removeFront()); System.out.println("Removing Back value " + dq.removeBack()); System.out.println("Removing Back value " + dq.removeBack()); System.out.println("Removing front value " + dq.removeFront()); } } class Node { E element; Node prev; Node next; public Node(E e){ element = e;} }Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.