Single Linked List

Objekt hinzufügen

Objekt entfernen

Double Linked List

Code
Single Linked List
import java.util.NoSuchElementException;
public class IntegerList{
private final IntegerNode head;
private final IntegerNode tail;
public IntegerList(){
tail = new IntegerNode(null);
head = new IntegerNode(null);
tail.setNext(head);
head.setNext(tail);
}
protected IntegerNode getHead(){return head;}
protected IntegerNode getTail(){return tail;}
public boolean isEmpty(){return head.getNext() == tail;}
public Integer pop(){
if (this.isEmpty()){
throw new NoSuchElementException("IntegerList empty, pop() not possible");
}
IntegerNode firstNode = head.getNext();
IntegerNode secondNode = firstNode.getNext();
head.setNext(secondNode);
if (head.getNext() == tail){
tail.setNext(head);
}
return firstNode.getObject();
}
public Integer peek(){
if (this.isEmpty()){
throw new NoSuchElementException("IntegerList empty, peek() not possible");
}
return head.getNext().getObject();
}
@Override
public String toString(){
StringBuilder sb = new StringBuilder("[");
IntegerNode pointer = head.getNext();
while (pointer != tail){
sb.append(pointer.getObject());
pointer = pointer.getNext();
if (pointer != tail){
sb.append("; ");
}
}
sb.append("]");
return sb.toString();
}
}
public class IntegerNode{
private final Integer object;
private IntegerNode next;
public IntegerNode(Integer object){
this.object = object;
this.next = null;
}
public Integer getObject(){return object;}
public IntegerNode getNext(){return next;}
public void setNext(IntegerNode next){this.next = next;}
}