Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

How do I fix it in java? LinkedList.java: /** * Defines a doubly-linked list class * @author * @author */ import java.util.NoSuchElementException; public class LinkedList

How do I fix it in java?

student submitted image, transcription available below

LinkedList.java:

/**
* Defines a doubly-linked list class
* @author
* @author
*/
import java.util.NoSuchElementException;

public class LinkedList {
private class Node {
private T data;
private Node next;
private Node prev;

public Node(T data) {
this.data = data;
this.next = null;
this.prev = null;
}
}

private int length;
private Node first;
private Node last;
private Node iterator;

/**** CONSTRUCTORS ****/

/**
* Instantiates a new LinkedList with default values
* @postcondition
*/
public LinkedList() {

first = null;
last = null;
iterator = null;
length = 0;

}

/**
* Converts the given array into a LinkedList
* @param array the array of values to insert into this LinkedList
* @postcondition
*/
public LinkedList(T[] array) {

}

/**
* Instantiates a new LinkedList by copying another List
* @param original the LinkedList to copy
* @postcondition a new List object, which is an identical,
* but separate, copy of the LinkedList original
*/
public LinkedList(LinkedList original) {

}

/**** ACCESSORS ****/


public T getFirst() throws NoSuchElementException {
if (isEmpty()){

throw new NoSuchElementException("The list is empty");

}
return first.data;
}



public T getLast() throws NoSuchElementException {
if (isEmpty()){

throw new NoSuchElementException("The list is empty");

}
return last.data;
}

/**
* Returns the data stored in the iterator node
* @precondition
* @return the data stored in the iterator node
* @throw NullPointerException
*/
public T getIterator() throws NullPointerException {
if (iterator != null){

return iterator.data;

}else{

throw new NullPointerException("Iterator is off the end opf the list.");

}

}

/**
* Returns the current length of the LinkedList
* @return the length of the LinkedList from 0 to n
*/
public int getLength() {
return length;
}

/**
* Returns whether the LinkedList is currently empty
* @return whether the LinkedList is empty
*/
public boolean isEmpty() {
return length == 0;
}

/**
* Returns whether the iterator is offEnd, i.e. null
* @return whether the iterator is null
*/
public boolean offEnd() {
return iterator == null;
}

/**** MUTATORS ****/


public void addFirst(T data) {
Node newNode = new Node(data);

if(isEmpty()){

first = newNode;
last = newNode;

}
else{

newNode.next = first;
first.prev = newNode;
first = newNode;

}
length++;
}


public void addLast(T data) {
Node newNode = new Node(data);

if(isEmpty()){

first = newNode;
last = newNode;

}
else{

last.next = newNode;
newNode.prev = last;
last = newNode;

}
length++;

}

/**
* Inserts a new element after the iterator
* @param data the data to insert
* @precondition
* @throws NullPointerException
*/
public void addIterator(T data) throws NullPointerException{
if(iterator != null){
Node newNode = new Node(data);
newNode.next = iterator.next;
iterator.next = newNode;

if (iterator == first){
first = newNode;
}
}else{

throw new NullPointerException("Iterator is off the end opf the list.");

}
}

/
public void removeFirst() throws NoSuchElementException {
if(isEmpty()){

throw new NoSuchElementException("The list is empty");

}

if(length == 1){
first = null;
last = null;
iterator = null;
}
else{
if(iterator == first){
iterator = null;
}
first = first.next;
first.prev = null;
}
length--;
}


public void removeLast() throws NoSuchElementException {
if(isEmpty()){

throw new NoSuchElementException("The list is empty");

}

if(length == 1){
first = null;
last = null;
iterator = null;
}
else{
if(iterator == last){
iterator = null;
}
last = last.prev;
last.next = null;
}
length--;
}

/**
* removes the element referenced by the iterator
* @precondition
* @postcondition
* @throws NullPointerException
*/
public void removeIterator() throws NullPointerException {
if(iterator != null){

if(iterator == first){

first = first.next;

}else{

Node prev = first;

while(prev.next != iterator){

prev = prev.next;

}
prev.next = iterator.next;

if (iterator == last){
last = prev;
}
}
iterator = null;
}else {

throw new NullPointerException("Iterator is off the end opf the list.");

}
}

/**
* places the iterator at the first node
* @postcondition
*/
public void positionIterator(){

iterator = first;

}

/**
* Moves the iterator one node towards the last
* @precondition
* @postcondition
* @throws NullPointerException
*/
public void advanceIterator() throws NullPointerException {
if (!offEnd()){

iterator = iterator.next;

}else {

throw new NullPointerException("Iterator is off the end opf the list.");

}
}

/**
* Moves the iterator one node towards the first
* @precondition
* @postcondition
* @throws NullPointerException
*/
public void reverseIterator() throws NullPointerException {
if(iterator != first && iterator != null){

Node prev = first;

while (prev.next != iterator){

prev = prev.next;

}

iterator = prev;
}

}


public void clear() {

first = null;
last = null;
iterator = null;
length = 0;

}



public String toString() {

StringBuilder result = new StringBuilder();
Node temp = first;

while (temp != null){

result.append(temp.data + " ");
temp = temp.next;

}
return result.toString() + "\n";
}


@SuppressWarnings("unchecked") //good practice to remove warning here
@Override

public boolean equals(Object obj) {
return false;
}

/**CHALLENGE METHODS*/


public void spinList(int numMoves) throws IllegalArgumentException{

}



public LinkedList altLists(LinkedList list) {
return null;
}
}

.

LabProgram.java

student submitted image, transcription available below  

java.lang.NullPointerException

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Java How To Program Late Objects Version

Authors: Paul Deitel, Deitel & Associates

8th Edition

0136123716, 9780136123712

More Books

Students also viewed these Programming questions

Question

=+b) What would the data values in such an indicator variable be?

Answered: 1 week ago