public class FIFORingpuffer implements FIFOSchlange { protected static class ListNode { public int data; public ListNode next; public int getData() { return data; } ListNode() { data=0; next=null; } ListNode (int a){ data=a; } } ListNode head=new ListNode(); ListNode tail=new ListNode(); int[] elements; int counter; public FIFORingpuffer(int n) { elements=new int[n]; counter=0; head.next=null; tail.next=null; } public boolean einfuegen(int zahl) { ListNode implement_me=new ListNode(zahl); ListNode old_element=new ListNode(); boolean implemented=false; if(counter==elements.length) { System.out.println("Es kann kein weiteres Element gespeichert werden. Puffer voll!"); } else { if(head.next!=null) { old_element=head.next; while(old_element.next!=null) { old_element=old_element.next; } if(counter==elements.length-2) { implement_me.next=head.next; old_element.next=implement_me; head=implement_me; elements[counter]=implement_me.getData(); counter++; tail.next=implement_me; implemented=true; } else { implement_me.next=null; old_element.next=implement_me; elements[counter]=implement_me.getData(); counter++; tail.next=implement_me; implemented=true; } } else { implement_me.next=null; head.next=implement_me; elements[counter]=implement_me.getData(); counter++; tail.next=implement_me; implemented=true; } } return implemented; } public int herausnehmen() { ListNode kill_me=new ListNode(); int value=0; if (head.next!=null) { kill_me=head.next; head.next=kill_me.next; elements[counter]=0; counter--; value=kill_me.getData(); System.out.println("folgendes Element geloescht: "+value); } else { value=-1; System.out.println("Kein Element geloescht, da Liste leer."); } return value; } public String toString() { StringBuffer str=new StringBuffer(); ListNode foo=head.next; System.out.println(head.getData()); if(head.next!=null) { str.append("Schlange vom Typ Ringpuffer mit der Kapazitaet "+counter+" Elemente:"); while(foo.next!=null) { str.append(" "+foo.getData()); foo=foo.next; } } else { str.append("Die angegebene Schlange vom Typ Ringpuffer mit der Kapazitaet "+counter+" ist leer."); } String ret=""+str; return ret; } public int[] eintraege() { int laenge=counter; int[] new_elements=new int[laenge]; for(int i=0;i