| @ -0,0 +1,13 @@ | |||
| package net.jrtechs.www; | |||
| /** | |||
| * Hello world! | |||
| * | |||
| */ | |||
| public class App | |||
| { | |||
| public static void main( String[] args ) | |||
| { | |||
| System.out.println( "Hello World!" ); | |||
| } | |||
| } | |||
| @ -0,0 +1,57 @@ | |||
| package net.jrtechs.www.DataStructures; | |||
| /** | |||
| * Generic interface to define the behavior of | |||
| * lists. | |||
| * | |||
| * @param <E> generic for lists to store | |||
| * | |||
| * @author Jeffery Russell 8-24-18 | |||
| */ | |||
| public interface IList<E> | |||
| { | |||
| /** | |||
| * Adds an element to the list | |||
| * | |||
| * @param o element to get added | |||
| * @return whether element was edded | |||
| */ | |||
| public boolean add(E o); | |||
| /** | |||
| * Determines if the list contains | |||
| * a certain element. | |||
| * | |||
| * @param o element to see if exists | |||
| * @return if element o is in the list | |||
| */ | |||
| public boolean contains(E o); | |||
| /** | |||
| * Returns the size of the list. | |||
| * | |||
| * @return size of list | |||
| */ | |||
| public int size(); | |||
| /** | |||
| * Removes an element from the list | |||
| * | |||
| * @param index of element to remove | |||
| * @return element which is removed | |||
| */ | |||
| public E remove(int index); | |||
| /** | |||
| * Returns element at a particular index | |||
| * | |||
| * @param index of desired element | |||
| * @return element at a certain index | |||
| */ | |||
| public E get(int index); | |||
| } | |||
| @ -0,0 +1,104 @@ | |||
| package net.jrtechs.www.DataStructures.LinkedList; | |||
| import net.jrtechs.www.DataStructures.IList; | |||
| import net.jrtechs.www.DataStructures.Node; | |||
| /** | |||
| * @author Jeffery Russell | |||
| */ | |||
| public class LinkedList<E> implements IList<E> | |||
| { | |||
| private Node<E> head; | |||
| private int size; | |||
| public LinkedList(E o) | |||
| { | |||
| this.head = new Node<>(o); | |||
| this.size = 1; | |||
| } | |||
| public LinkedList() | |||
| { | |||
| this.head = null; | |||
| this.size = 0; | |||
| } | |||
| public boolean add(E o) | |||
| { | |||
| Node current = this.head; | |||
| while(current != null) | |||
| { | |||
| current = current.getNext(); | |||
| } | |||
| this.size++; | |||
| return false; | |||
| } | |||
| public boolean contains(E o) | |||
| { | |||
| Node current = this.head; | |||
| while(current != null) | |||
| { | |||
| if(current.equals(o)) | |||
| { | |||
| return true; | |||
| } | |||
| current = current.getNext(); | |||
| } | |||
| return false; | |||
| } | |||
| public int size() | |||
| { | |||
| return this.size; | |||
| } | |||
| public E remove(int index) | |||
| { | |||
| int count = 0; | |||
| Node<E> current = this.head; | |||
| Node<E> previous = null; | |||
| while(current != null) | |||
| { | |||
| if(count == index) | |||
| { | |||
| if(previous == null) | |||
| this.head = current; | |||
| previous.setNext(current.getNext()); | |||
| this.size--; | |||
| return current.getData(); | |||
| } | |||
| previous = current; | |||
| current = current.getNext(); | |||
| } | |||
| return null; | |||
| } | |||
| public E get(int index) | |||
| { | |||
| int count = 0; | |||
| Node<E> current = this.head; | |||
| while(current != null) | |||
| { | |||
| if(count == index) | |||
| { | |||
| return current.getData(); | |||
| } | |||
| current = current.getNext(); | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @ -0,0 +1,44 @@ | |||
| package net.jrtechs.www.DataStructures; | |||
| /** | |||
| * @author Jeffery Russell 8-24-18 | |||
| */ | |||
| /** | |||
| * | |||
| * @param <E> | |||
| */ | |||
| public class Node<E> | |||
| { | |||
| private E data; | |||
| private Node<E> next; | |||
| public Node(E d) | |||
| { | |||
| this.data = d; | |||
| this.next = null; | |||
| } | |||
| public Node(E d, Node<E> newNext) | |||
| { | |||
| this.data = d; | |||
| this.next = newNext; | |||
| } | |||
| public Node<E> getNext() | |||
| { | |||
| return this.next; | |||
| } | |||
| public E getData() | |||
| { | |||
| return data; | |||
| } | |||
| public void setNext(Node<E> newNext) | |||
| { | |||
| this.next = newNext; | |||
| } | |||
| } | |||