I need help learning how to create these methods.*************** I cannot use a
ID: 3803893 • Letter: I
Question
I need help learning how to create these methods.*************** I cannot use a import whatsoever**************
public class BaseDeque<Item> implements Deque<Item> {
@Override
public void enqueueFront(Item element) {
}
@Override
public void enqueueBack(Item element) {
}
@Override
public Item dequeueFront() throws NoSuchElementException {
return null;
}
@Override
public Item dequeueBack() throws NoSuchElementException {
return null;
}
@Override
public Item first() throws NoSuchElementException {
return null;
}
@Override
public Item last() throws NoSuchElementException {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public int size() {
return 0;
}
Explanation / Answer
public class BaseDeque<Item> implements Deque<Item> {
private int count;
private LinearDoubleNode<T> firstNode, lastNode;
public BaseDeque()
{
count = 0;
firstNode = null;
lastNode = null;
}
@Override
public void enqueueFront(Item element) {
LinearDoubleNode newNode = new LinearDoubleNode();
newNode.setElement(element);
if(isEmpty()){
lastNode = newNode;
firstNode = newNode;
}
else {
LinearDoubleNode second=firstNode;
firstNode=newNode;
firstNode.setNext(second);
second.setPrev(firstNode);
// firstNode.setPrev(newNode);
}
count++;
}
@Override
public void enqueueBack(Item element) {
if (element==null) throw new NullPointerException("cannot add null to the list");
LinearDoubleNode<Item> node = new LinearDoubleNode<Item>(element);
node.setElement(element);
if (isEmpty()){
firstNode = node;
lastNode=node;}
else{
LinearDoubleNode<Item> before=lastNode;
lastNode=node;
before.setNext(lastNode);
lastNode.setPrev(before);
}
count++;
}
@Override
public Item dequeueFront() throws NoSuchElementException {
Item front = null;
if (count==1){
front=firstNode.getElement();
firstNode=null;
lastNode=null;
count--;
}
else if (!isEmpty()) {
count--;
front = firstNode.getElement();
firstNode = firstNode.getNext();
}
return front;
}
@Override
public Item dequeueBack() throws NoSuchElementException {
Item back = null;
if (count==1){
back = lastNode.getElement();
lastNode = null;
firstNode = null;
count--;
}
else if (!isEmpty()) {
count--;
back = lastNode.getElement();
lastNode = lastNode.getPrev();
lastNode.setNext(null);
}
return back;
}
@Override
public Item first() throws NoSuchElementException {
return firstNode.getElement();
}
@Override
public Item last() throws NoSuchElementException {
return lastNode.getElement();
}
@Override
public boolean isEmpty() {
return count==0;
}
@Override
public int size() {
return count;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.