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