Einführung in die objektorientierte Programmierung

Aufgabe 1

 

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 )); 
   }
   
   }
 

Parametrisierung

 

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;
}
}