So i am trying to compile my LinkedList for a program that i have created and it is coming back with errors that i feel are really errors (if that makes since). I am wondering if anyone can look at this and put in their thoughts of why i might be getting errors when i compile and if they have any suggestions on what i should do to get rid of them:
import java.util.Iterator;
import java.util.NoSuchElementException;
public class LinkedListDS<E> implements ListADT<E> {
class Node<E> {
E data;
Node<E> next;
public Node(E data) {
this.data = data;
next = null;
}
}
private Node<E> head, tail;
private int currentSize;
public LinkedListDS() {
head = tail = null;
currentSize = 0;
}
public void addFirst(E obj) {
if(head == null)
head = tail = newNode;
else {
newNode.next = head;
head = newNode;
}
currentSize++;
}
// Adds the Object obj to the end of the list
public void addLast(E o) {
if(head == null)
head = newNode;
tail = newNode;
currentSize++;
return;
{
tail.next = newNode;
tail = newNode;
currentSize++;
}
}
// Removes the first Object in the list and returns it.
// Returns null if the list is empty.
public E removeFirst() {
if(head == null)
return null;
E tmp = head.data;
head = head.next;
{
if (head == null)
tail = null;
currentSize++;
return tmp;
}
}
// Removes the last Object in the list and returns it.
// Returns null if the list is empty.
public E removeLast() {
Node<E> previous = null;
Node<E> current = head;
if (current == null)
return null;
while(current.next != null) {
previous = current;
current = current.next;
}
if(previous = null)
return removeFirst;
previous.next = null;
tail = previous;
currentSize--;
return current.data;
}
// Returns the first Object in the list, but does not remove it.
// Returns null if the list is empty.
public E peekFirst() {
if(head == null)
return null;
return head.data;
}
// Returns the last Object in the list, but does not remove it.
// Returns null if the list is empty.
public E peekLast() {
if(tail == null)
return null;
return tail.data;
}
// Removes the specific Object obj from the list, if it exists.
// Returns true if the Object obj was found and removed, otherwise false
public boolean remove(E obj) {
if(head == null)
return false;
{
if(head.data.equals(obj))
head = head.next;
return true;
}
Node<E> current = head;
while(current.next != null)
{
if(current.next.data.equals(obj))
{
current.next = current.next.next;
return true;
}
current - current.next;
}
currentSize--;
return false,
}
}
// The list is returned to an empty state.
public void makeEmpty() {
head = tail = null;
currentSize = 0;
// Returns true if the list contains the Object obj, otherwise false
public boolean contains(E obj) {
Node<E> current = head;
while(current != null)
{
if(current.data.equals(obj))
{
return true;
}
current - current.next;
}
return false;
}
// Returns true if the list is empty, otherwise false
public boolean isEmpty() {
return = null;
}
// Returns true if the list is full, otherwise false
public boolean isFull() {
return false;
}
// Returns the number of Objects currently in the list.
public int size() {
return currentSize;
}
public iterator<E> iterator() {
return new iterator;
}
class IteratorHelper implements Iterator<E> {
Node<E> iteratorPointer
public IteratorHelper() {
iteratorPointer = head;
}
public boolean hasNext() {
return iteratorPointer != null;
}
public E next() {
if(!hasNext())
throw new NoSuchElementException();
E tmp = iteratorPointer.data;
iteratorPointer = iteratorPointer.next;
return tmp;
}
public void remove() {
throw new UnsupportedOperationException();
}
}
}
Also, is there a way that i can make this code more simpler to read, understand, not as long but yet still have the same task to complete? Please feel free to share.
You have defined an interface and are using it as class..
Problems in above declaration: –
methodsandconstructorsSo, you wanted to use a class actually..
Change the above declaration to: –
Also, you haven’t closed your
iteratormethod..Add a closing brace.. Actually, you have so many of them… Re-indent your code to check the matching braces.. That is one major problem you face when you are not indenting the code..