| @ -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; | |||||
| } | |||||
| } | |||||