class Main{
public static void main(String[] args){
Queue<String> ringpuffer = new Queue<String>(4);
System.out.println(ringpuffer.first.anzahl);
ringpuffer.insert("a");
ringpuffer.insert("b");
ringpuffer.insert("c");
ringpuffer.insert("d");
//
ringpuffer.print();
//
ringpuffer.insert("e");
//
ringpuffer.print();
}
}
class Entry<ET>{ ET element; Entry<ET> next, previous; static int anzahl=0; Entry(ET element, Entry<ET> next, Entry<ET> previous){ this.element = element; this.next= next; this.previous= previous; anzahl++; } }
class Queue<ET>{ Entry<ET> first; public Queue(int groesse){ first= new Entry<ET>(null, null, null); first.next= first; first.previous= first; Entry<ET> neu; for (int i=1;i<groesse ;i++ ) { this.addLast(null); } // end of for } public void addLast(ET wert){ Entry<ET> neu = new Entry<ET>(wert, first, first.previous); first.previous.next= neu; first.previous=neu; } public void insert(ET wert){ this.addLast(wert); first.next.previous=first.previous; first.previous.next= first.next; first=first.next; } public void print(){ Entry<ET> zeiger= first.previous; while (zeiger != first) { System.out.println(String.valueOf( zeiger.element )); zeiger= zeiger.previous; } // end of while System.out.println(String.valueOf( zeiger.element )); } }
class Element<ET>{ ET wert; Element next; Element(ET w){ this.wert=w; } public void drucken(Element l){ while (!(l==null)) { System.out.println(l.wert); l= l.next; } // end of while } public static void main(String[] args){ Element<String> liste= new Element<String>("Hallo"); Element<String> neu= new Element<String>(" alle"); liste.next=neu; Element<Integer> neu2 = new Element<Integer>(7); neu.next= neu2; Ganzzahl ganzneu = new Ganzzahl(2); Element<Ganzzahl> neu3= new Element<Ganzzahl>(ganzneu); neu2.next= neu3; liste.drucken(liste); } }
class Ganzzahl{
int wert=0;
Ganzzahl(int zahl){
wert=zahl;
}
public String toString(){
return ""+wert;
}
}