Implement the additional 5 methods as indicated in the Linke

Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are contains(), get(), remove(), reverseList(), and set().

public class LinkedList<E>
{
Node<E> head;
Node<E> tail;
int size;
  
public LinkedList()
{
head=null;
tail=head;
size=0;
}
  
public boolean isEmpty() {
  
return (size==0);
  
  
  
  
}
  
public void addFirst(E val) {
  
Node<E> first = new Node<E>();
first.setValue(val);
  
if (isEmpty() ){
  
head=first;
tail=first;

}
  
else {
first.setNext(head);
head.setPrev(first);
head=first;
  
}
size++;
}

public void printList() {
  
Node<E> temp;
  
if (isEmpty()) {
  
System.out.println(\"list is empty\");
  
  
}
else {
  
temp= head;
while (temp!=null) {
System.out.println(temp.getValue());
temp=temp.getNext();

} ;
  
  
  
  
}
  
  
  
}
  

public void addLast (E val) {
Node<E> last = new Node<E>();
last.setValue(val);
  
if (isEmpty()) {
  
head=last;
tail=last;

}
else {
  
tail.setNext(last);
last.setPrev(tail);
tail=last;

}
size ++;

}

// handle error situations
// index value has to be >=0 and <=size
// size()=0 you do special stuff

public void add(int index, E val) {
  
if ((index>=0)||(index<=size)) {
  
if (index==0) addFirst(val);
else if (index==size) addLast(val);
else {
int j =0;
Node<E> temp= head;
while (j!=index) {
//System.out.println(temp.getValue());
temp=temp.getNext();
j++;
}
Node<E> newNode = new Node<E>();
newNode.setNext(temp);
newNode.setPrev(temp.getPrev());
(temp.getPrev()).setNext(newNode);
// (newNode.getPrev()).setNext(newNode);
temp.setPrev(newNode);
newNode.setValue(val);
size++;
}
  
  
  
  
}
  
  
  
else
System.out.println (\"index out of bounds ...\");
  
  
  
}

// handle empty list


public E removeFirst() {
  
E val;
  
if (isEmpty()) {
System.out.println(\"List empty - nothing to remove\");
return null;
}
else {
val=head.getValue();
if (size==1) {
head=null;   
tail=null;
}
else {
head=head.getNext();
head.setPrev(null);
}

size--;
return val;
}
  
  
  
}
  
  
  


//handle empty list
public E removeLast() {
  
E val=null;
  
if ((isEmpty())||(size==1)) val=removeFirst();
  
else {
val =tail.getValue();
tail=tail.getPrev();
tail.setNext(null);
size--;
  
}
return val;
  
  
}


// returns true if the linkedlist contains the item val
// returns false otherwise
//for testing equality of objects use the equals() method.
// Assume toString() method exists for val and for items
// stored in the linked list.

public boolean contains(Object val) {

}


// Returns:
//a new LinkedList which contains the elements in the reverse
// order of this list from head to tail
// null if the list is empty.

public LinkedList<E> reverseList() {
  
  
}

//Parameters:
//index - index of the element to return
//Returns:
//the element at the specified position in this list
//Throws:
//IndexOutOfBoundsException - if the index is out of range
// (index < 0 || index >= size())

public E get (int index) {
  
}

//Parameters:
//index - the index of the element to be removed
//Returns:
//the element previously at the specified position
//Throws:
//IndexOutOfBoundsException - if the index is out of range
//(index < 0 || index >= size())

public E remove(int index) {
  
}

//Parameters:
//index - index of the element to replace
//val - element to be stored at the specified position
//Returns:
//the element previously at the specified position
//Throws:
//IndexOutOfBoundsException - if the index is out of range
//(index < 0 || index >= size())

public boolean set(int index, E val) {

}

  }

public class Node<E>
{
private Node<E> prev;
private Node<E> next;
private E item;   
public Node() {
prev=null;
next =null;
item = null;  
}
public void setValue(E value) {  
item = value;
}
  public void setPrev(Node<E> p) {
prev =p;
  }

public void setNext(Node<E> n) {

next = n;

  }
  public E getValue() {
  return item;
  }

public Node<E> getPrev() {
  return prev;
  }
  public Node<E> getNext() {
  return next;
  }
  }

Solution

CODE:

(i) REVERSE LINKED LIST:

(ii) get():-

(iii) contains():-

(iv) remove() :-

(v) Set():-

Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are
Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are
Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are
Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are
Implement the additional 5 methods as indicated in the LinkedList file. Test them thoroughly for all exceptional situations and boundary cases. The methods are

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site