Question
public class MyLinkedList extends MyAbstractList { private Node head, tail; /** Create a default list */ public MyLinkedList() { } /** Create a list from
public class MyLinkedList
/** Create a default list */ public MyLinkedList() { }
/** Create a list from an array of objects */ public MyLinkedList(E[] objects) { super(objects); }
/** Return the head element in the list */ public E getFirst() { if (size == 0) { return null; } else { return head.element; } }
/** Return the last element in the list */ public E getLast() { if (size == 0) { return null; } else { return tail.element; } }
/** Add an element to the beginning of the list */ public void addFirst(E e) { Node
if (tail == null) // the new node is the only node in list tail = head; }
/** Add an element to the end of the list */ public void addLast(E e) { Node
if (tail == null) { head = tail = newNode; // The new node is the only node in list } else { tail.next = newNode; // Link the new with the last node tail = tail.next; // tail now points to the last node }
size++; // Increase size }
@Override /** Add a new element at the specified index * in this list. The index of the head element is 0 */ public void add(int index, E e) { if (index == 0) { addFirst(e); } else if (index >= size) { addLast(e); } else { Node
/** Remove the head node and * return the object that is contained in the removed node. */ public E removeFirst() { if (size == 0) { return null; } else { Node
/** Remove the last node and * return the object that is contained in the removed node. */ public E removeLast() { if (size == 0) { return null; } else if (size == 1) { Node
for (int i = 0; i
Node
@Override /** Remove the element at the specified position in this * list. Return the element that was removed from the list. */ public E remove(int index) { if (index = size) { return null; } else if (index == 0) { return removeFirst(); } else if (index == size - 1) { return removeLast(); } else { Node
for (int i = 1; i
Node
@Override /** Override toString() to return elements in the list */ public String toString() { StringBuilder result = new StringBuilder("[");
Node return result.toString(); } @Override /** Clear the list */ public void clear() { size = 0; head = tail = null; } @Override /** Return true if this list contains the element e */ public boolean contains(E e) { System.out.println("Implementation left as an exercise"); return true; } @Override /** Return the element at the specified index */ public E get(int index) { System.out.println("Implementation left as an exercise"); return null; } @Override /** Return the index of the head matching element in * this list. Return -1 if no match. */ public int indexOf(E e) { System.out.println("Implementation left as an exercise"); return 0; } @Override /** Return the index of the last matching element in * this list. Return -1 if no match. */ public int lastIndexOf(E e) { System.out.println("Implementation left as an exercise"); return 0; } @Override /** Replace the element at the specified position * in this list with the specified element. */ public E set(int index, E e) { System.out.println("Implementation left as an exercise"); return null; } @Override /** Override iterator() defined in Iterable */ public java.util.Iterator private void checkIndex(int index) { if (index = size) throw new IndexOutOfBoundsException ("Index: " + index + ", Size: " + size); } private class LinkedListIterator implements java.util.Iterator @Override public E next() { E e = current.element; current = current.next; return e; } @Override public void remove() { System.out.println("Implementation left as an exercise"); } } private static class Node public Node(E element) { this.element = element; } } } I want to do this is java
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started