Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Java Chapter 21 PC 1? part 2 Demonstrate your class with a graphical user interf

ID: 3720011 • Letter: J

Question

Java Chapter 21 PC 1? part 2

Demonstrate your class with a graphical user interface that allows users to manipulate the deque by typing appropriate commands in a JTextField component, and see the current state of the deque displayed in a JTextArea component. Consult the documentation for the JTextArea class for methods you can use to display each item in the deque on its own line.

3rd source code for GUI that allows users to manipulate your deque GUIdeque Class

CODE

================

public class Deque<T> {

private Node<T> front;

private Node<T> rear;

public void insertFront(T item){

//add element at the beginning of the queue

System.out.println("adding at front: "+item);

Node<T> nd = new Node<T>();

nd.setValue(item);

nd.setNext(front);

if(front != null) front.setPrev(nd);

if(front == null) rear = nd;

front = nd;

}

public void insertRear(T item){

//add element at the end of the queue

System.out.println("adding at rear: "+item);

Node<T> nd = new Node<T>();

nd.setValue(item);

nd.setPrev(rear);

if(rear != null) rear.setNext(nd);

if(rear == null) front = nd;

rear = nd;

}

public void removeFront(){

if(front == null){

System.out.println("Deque underflow!! unable to remove.");

return;

}

//remove an item from the beginning of the queue

Node<T> tmpFront = front.getNext();

if(tmpFront != null) tmpFront.setPrev(null);

if(tmpFront == null) rear = null;

System.out.println("removed from front: "+front.getValue());

front = tmpFront;

}

public void removeRear(){

if(rear == null){

System.out.println("Deque underflow!! unable to remove.");

return;

}

//remove an item from the beginning of the queue

Node<T> tmpRear = rear.getPrev();

if(tmpRear != null) tmpRear.setNext(null);

if(tmpRear == null) front = null;

System.out.println("removed from rear: "+rear.getValue());

rear = tmpRear;

}

public static void main(String a[]){

Deque<Integer> deque = new Deque<Integer>();

deque.insertFront(34);

deque.insertFront(67);

deque.insertFront(29);

deque.insertFront(765);

deque.removeFront();

deque.removeFront();

deque.removeFront();

deque.insertRear(43);

deque.insertRear(83);

deque.insertRear(84);

deque.insertRear(546);

deque.insertRear(356);

deque.removeRear();

deque.removeRear();

deque.removeRear();

deque.removeRear();

deque.removeFront();

deque.removeFront();

deque.removeFront();

}

}

class Node<T>{

private Node<T> prev;

private Node<T> next;

private T value;

public Node<T> getPrev() {

return prev;

}

public void setPrev(Node<T> prev) {

this.prev = prev;

}

public Node<T> getNext() {

return next;

}

public void setNext(Node<T> next) {

this.next = next;

}

public T getValue() {

return value;

}

public void setValue(T value) {

this.value = value;

}

}

Explanation / Answer

public class Deque<T> {

private Node<T> front;

private Node<T> rear;

public void insertFront(T item){

//add element at the beginning of the queue

System.out.println("adding at front: "+item);

Node<T> nd = new Node<T>();

nd.setValue(item);

nd.setNext(front);

if(front != null) front.setPrev(nd);

if(front == null) rear = nd;

front = nd;

}

public void insertRear(T item){

//add element at the end of the queue

System.out.println("adding at rear: "+item);

Node<T> nd = new Node<T>();

nd.setValue(item);

nd.setPrev(rear);

if(rear != null) rear.setNext(nd);

if(rear == null) front = nd;

rear = nd;

}

public void removeFront(){

if(front == null){

System.out.println("Deque underflow!! unable to remove.");

return;

}

//remove an item from the beginning of the queue

Node<T> tmpFront = front.getNext();

if(tmpFront != null) tmpFront.setPrev(null);

if(tmpFront == null) rear = null;

System.out.println("removed from front: "+front.getValue());

front = tmpFront;

}

public void removeRear(){

if(rear == null){

System.out.println("Deque underflow!! unable to remove.");

return;

}

//remove an item from the beginning of the queue

Node<T> tmpRear = rear.getPrev();

if(tmpRear != null) tmpRear.setNext(null);

if(tmpRear == null) front = null;

System.out.println("removed from rear: "+rear.getValue());
front=rear;
rear = tmpRear;

}

public static void main(String a[]){

Deque<Integer> deque = new Deque<Integer>();

deque.insertFront(34);

deque.insertFront(67);

deque.insertFront(29);

deque.insertFront(765);

deque.removeFront();

deque.removeFront();

deque.removeFront();

deque.insertRear(43);

deque.insertRear(83);

deque.insertRear(84);

deque.insertRear(546);

deque.insertRear(356);

deque.removeRear();

deque.removeRear();

deque.removeRear();

deque.removeRear();

deque.removeFront();

deque.removeFront();

deque.removeFront();

}

}

class Node<T>{

private Node<T> prev;

private Node<T> next;

private T value;

public Node<T> getPrev() {

return prev;

}

public void setPrev(Node<T> prev) {

this.prev = prev;

}

public Node<T> getNext() {

return next;

}

public void setNext(Node<T> next) {

this.next = next;

}

public T getValue() {

return value;

}

public void setValue(T value) {

this.value = value;

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote