A completed implementation of linked lists. The Node class:

public class Node {
    private int data;
    private Node next;

    public Node(int d) {
	data = d;
	next = null; // can skip this line: null is the default value
    }

    public int getData() {
	return data;
    }

    // return the next node
    public Node getNext() {
	return next;
    }

    // set the node 
    public void setNext(Node n) {
	next = n;
    }
}

The LinkedList class:

public class LinkedList {
    private Node first;

    public LinkedList() {
	first = null;
    }

    // returns 'true' for an empty list and 'false' otherwise
    public boolean isEmpty() {
	return (first == null);
    }

    // returns the reference to the first node in the list
    // if the list is empty, null is returned.
    public Node getFirst() {
	return first;
    }

    // the method adds the node to the front of the list.
    // the 'next' field of the node is replaced by the reference to 
    // the rest of the list
    // If the parameter is null, an error message is printed and
    // the program stops
    public void addFront(Node n) {
	// before calling a method on n, need to make sure 
	// that n is not null
	if (n == null) {
	    System.out.println("Cannot add a null element to the list");
	    System.exit(0);
	}
	// if we got here, n is not null
	n.setNext(first); 
	first = n;
    }

    // the method removes the first node from the list. 
    // if the list is empty, an error message is printed and
    // the program stops
    public void removeFront() {
	// before removing an element from a list, need to make sure that
	// the list is not empty
	if (first == null) {
	    System.out.println("Cannot remove an element from an empty list");
	    System.exit(0);
	}
	// if we got here, the list is not empty
	first = first.getNext();
    }
}

The testing program for LinkedList. It needs some printing! Think of how we can print a linked list. We will work on it (and on applications of linked lists) on Wednesday.

public class TestLinkedLists {
    public static void main(String [] args) {
	// testing nodes:
	Node first = new Node(5);
	Node second = new Node(6);

	LinkedList list = new LinkedList();
	
	// add the two nodes to the list
	list.addFront(first);
	list.addFront(second);

	// Something to think about for Wednesday:
	// how do we print the list? 
    }
}

This is an example from CSci 2101 course.

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.