class Node { private Object data; private Node next; Node(Object data) { this(data, null); } Node(Object data, Node next) { this.data = data; this.next = next; } Object getData() { return data; } Node getNext() { return next; } void setData(Object data) { this.data = data; } void setNext(Node next) { this.next = next; } }
public class LinkedList { private Node head; public LinkedList() { head = null; } private Node getHead() { return head; } private void setHead(Node node) { head = node; } public Object getFirst() throws NullPointerException { return getHead().getData(); } public boolean isEmpty() { return getHead() == null; } public Object get(int index) throws NullPointerException { Node current = getHead(); for (int i = 0; i < index; ++i) { current = current.getNext(); } return current.getData(); } public boolean add(Object data) { if (isEmpty()) { setHead(new Node(data)); } else { Node current = getHead(); while (current.getNext() != null) { current = current.getNext(); } current.setNext(new Node(data)); } return true; } public void addFirst(Object data) { setHead(new Node(data, getHead()); } public Object remove(int index) throws NullPointerException { Object temp; if (index == 0) { temp = getHead().getData(); setHead(getHead().getNext()); } else { Node current = getHead(); for (int i = 0; i < index - 1; ++i) { current = current.getNext(); } temp = current.getNext().getData(); current.setNext(current.getNext().getNext()); } return temp; }
Previou page | Next page |