Einfach verkettete Liste

Objekt hinzufügen

Objekt entfernen

Double Linked List

Java Code
import java.util.NoSuchElementException;
public abstract 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();
}
}
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;
}
}