rendered paste bodypublic 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<laenge;i++) {
new_elements[i]=this.herausnehmen();
this.einfuegen(new_elements[i]);
}
return new_elements;
}
public static void main(String[]args) {
FIFORingpuffer ring=new FIFORingpuffer(10);
ring.einfuegen(9);
ring.herausnehmen();
ring.herausnehmen();
System.out.println(ring.toString());
ring.einfuegen(2);
ring.einfuegen(19);
ring.einfuegen(29);
ring.einfuegen(39);
ring.einfuegen(49);
System.out.println(ring.toString());
}
}