- Linked List - Building Better Arrays
Desired Use
public static void main(String[] args) throws Exception {
LinkedList list = new LinkedList();
list.add(5);
list.add(10);
list.add(15);
// Get a specific Element
int a = list.get(2);
System.out.println("Element: " + a);
// Print the List
list.print();
}
Implementation
public class LinkedList {
public class Node {
public int value;
public Node next = null;
public Node(int value){ this.value = value;}
}
public Node head;
public void add(int value){
if (head == null) { head = new Node(value); }
else{
Node iterator = head; // Call by Reference!
while(iterator.next != null) { iterator = iterator.next; }
iterator.next = new Node(value);
}
}
public int get(int index) throws Exception{
Node iterator = head;
int counter = 0;
while(iterator != null){
if(counter == index) { return iterator.value; } counter++;
iterator = iterator.next;
}
throw new Exception("Element not found");
}
public void print(){
if (head != null){
Node iterator = head; // Call by Reference!
while(iterator != null) {
System.out.println(iterator.value + " ");
iterator = iterator.next;
}
}
}
-
Class structure containing LinkedList and Node
Uses call by reference
Node holds reference to Element
List holds reference to the first Node
Basic Operations:
get( int index), add(int value), print()