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