public class Queue { private QueueEl first; private QueueEl last; public void enqueue(Object obj) { QueueEl el = new QueueEl(obj); if(first == null) { first = el; last = first; } else { last.setNext(el); last = el; } } public QueueEl dequeue() { QueueEl tmp = first; first = first.getNext(); return tmp; } public boolean empty() { return first == null; } public void print() { int i = 0; QueueEl tmp = first; while(tmp != null) { System.out.println("Element "+i+": "+ tmp.getObject()+" Referenz: "+tmp+" --> "+tmp.getNext()); i++; tmp = tmp.getNext(); } System.out.println("first: "+first); System.out.println("last: "+last); } public void invert() { QueueEl tmp1 = first, tmp2 = null; while(first != last) { tmp2 = first; first = tmp1.getNext(); tmp1.setNext(first.getNext()); first.setNext(tmp2); } last = tmp1; } } class QueueEl { private QueueEl next; private Object obj; QueueEl() {}; QueueEl(Object obj) { this.obj = obj; } public void setNext(QueueEl n) { this.next = n; } public void setObject(Object o) { this.obj = o; } public QueueEl getNext() { return next; } public Object getObject() { return obj; } }