+1 (315) 557-6473 

Java Program to Implement Linked List and Array Assignment Solution.


Instructions

Objective
Write a java assignment program to implement linked list and array.

Requirements and Specifications

program to implement linked list and array in java

Source Code

public class MyLinkedList {

// Create the nested class Node(private)

private class Node {

T item;

Node next;

public Node(T item, Node nextNode) {

this.item = item;

this.next = nextNode;

}

}

private Node first;

private Node current;

private Node previous;

private int size;

public MyLinkedList() {

this.size = 0;

this.first = null;

this.current = null;

this.previous = null;

}

public void addBefore(T item) {

if(size == 0) {

// If the list is empty, then add as the first node

first = new Node(item, null);

} else if(current == null) {

// Add at the end of the list

Node temp = first;

while(temp.next != null) {

temp = temp.next;

}

temp.next = new Node(item, null);

} else {

Node temp = first;

Node prev = null;

while(!temp.equals(current)) {

prev = temp;

temp = temp.next;

}

prev.next = new Node(item, current);

if(size == 1) {

first = previous;

}

}

size++;

}

public void addAfter(T item) {

if(current == null) {

return;

}

Node temp = new Node(item, current.next);

current.next = temp;

size++;

}

public String toString() {

String ret = "";

ret += "Linked List Contents [";

Node temp = first;

int i = 0;

while(temp != null) {

ret += temp .item.toString();

if(i < size-1) {

ret += ", ";

}

temp = temp .next;

i++;

}

ret += "]";

return ret;

}

public T first() {

if(first == null) {

return null;

}

previous = current;

current = first;

return (T) current.item;

}

public T next() {

if(current == null) {

return null;

}

previous = current;

current = current.next;

return (T)current.item;

}

public T current() {

if(current == null) {

return null;

}

return (T)current.item;

}

public T remove() {

if(current == null) {

return null;

}

Node prev = null;

Node temp = first;

while(!temp.equals(current)) {

prev = temp;

temp = temp.next;

}

Node removed = current;

prev.next = removed.next;

previous = removed;

size--;

return (T)removed.item;

}

public boolean contains(T item) {

// Search for item

Node temp = first;

while(temp.next != null) {

if(temp.item.equals(item)) {

return true;

}

temp = temp.next;

}

return false;

}

public int size() {

return size;

}

public boolean isEmpty() {

return size == 0;

}

}