Guest User

Untitled

a guest
Jan 19th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.91 KB | None | 0 0
  1. import java.awt.List;
  2.  
  3.  
  4. public class Liste {
  5.  
  6.     private ListenElement kopf,schluss,aktuell;
  7.    
  8.     public Liste()
  9.     {
  10.         kopf = new ListenElement();
  11.         schluss = new ListenElement();
  12.         kopf.setNachfolger(schluss);
  13.         aktuell = kopf;
  14.         // eine Liste wird erzeugt.
  15.     }
  16.     boolean isEmpty()
  17.     {
  18.         if (kopf.getNachfolger() == schluss)
  19.         {
  20.             return true;
  21.         }
  22.         else
  23.         {
  24.             return false;
  25.         }
  26.     /**Die Anfrage liefert den Wert true, wenn die Liste keine Objekte enthält,
  27.     sonst liefert sie den Wert false.*/
  28.        
  29.     }
  30.    
  31.     boolean hasAccess(){
  32.         if(aktuell == kopf || aktuell == schluss)
  33.         {
  34.             return false;
  35.         }
  36.         else
  37.         {
  38.             return true;
  39.         }
  40.     /**Die Anfrage liefert den Wert true, wenn es ein aktuelles Objekt gibt,
  41.     sonst liefert sie den Wert false.
  42.     */
  43.     }
  44.     void next(){
  45.         if(!this.isEmpty() && this.hasAccess())
  46.         {
  47.             aktuell = aktuell.getNachfolger();
  48.         }
  49.     /**Falls die Liste nicht leer ist, es ein aktuelles Objekt gibt und dieses
  50.     nicht das letzte Objekt der Liste ist, wird das dem aktuellen Objekt in
  51.     der Liste folgende Objekt zum aktuellen Objekt, andernfalls gibt es
  52.     nach Ausführung des Auftrags kein aktuelles Objekt, d.h.
  53.     hasAccess() liefert den Wert false.
  54.     */
  55.     }
  56.    
  57.     void toFirst(){
  58.         if(!this.isEmpty())
  59.         {
  60.             aktuell = kopf.getNachfolger();
  61.         }
  62.     /**Falls die Liste nicht leer ist, wird das erste Objekt der Liste aktuelles
  63.     Objekt. Ist die Liste leer, geschieht nichts.*/
  64.     }
  65.    
  66.     void toLast()
  67.     {
  68.         if(!this.isEmpty())
  69.         {
  70.             while(!(aktuell.getNachfolger()== schluss))
  71.             {
  72.                 this.next();
  73.             }
  74.         }
  75.     /**Falls die Liste nicht leer ist, wird das letzte Objekt der Liste aktuelles
  76.     Objekt. Ist die Liste leer, geschieht nichts.*/
  77.     }
  78.    
  79.     Object getObject()
  80.     {
  81.         if(this.hasAccess())
  82.         {
  83.             return aktuell.getInhalt();
  84.         }
  85.         return null;
  86.     /**Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das
  87.     aktuelle Objekt zurückgegeben, andernfalls (hasAccess()==
  88.     false) gibt die Anfrage den Wert null zurück.*/
  89.     }
  90.    
  91.     void setObject(Object pObject)
  92.     {
  93.         if(this.hasAccess()&& pObject != null)
  94.         {
  95.             aktuell.setInhalt(pObject);
  96.         }
  97.     /**Falls es ein aktuelles Objekt gibt (hasAccess() == true) und
  98.     pObject ungleich null ist, wird das aktuelle Objekt durch pObject
  99.     ersetzt. Sonst bleibt die Liste unverändert.*/
  100.     }
  101.    
  102.     void append(Object pObject)
  103.     {
  104.         if(this.isEmpty() && pObject != null)
  105.         {
  106.             ListenElement neu = new ListenElement();
  107.             neu.setInhalt(pObject);
  108.             neu.setNachfolger(schluss);
  109.             kopf.setNachfolger(neu);
  110.             aktuell = kopf.getNachfolger();
  111.            
  112.         }
  113.         else if(this.hasAccess() && pObject != null)
  114.         {
  115.             ListenElement merke = aktuell;
  116.             this.toLast();
  117.             ListenElement neu = new ListenElement();
  118.             neu.setInhalt(pObject);
  119.             neu.setNachfolger(schluss);
  120.             aktuell.setNachfolger(neu);
  121.             this.toFirst();
  122.             while(aktuell != merke)
  123.             {
  124.             this.next();
  125.             }
  126.        
  127.            
  128.         }
  129.        
  130.     /**Ein neues Objekt pObject wird am Ende der Liste eingefügt. Das
  131.     aktuelle Objekt bleibt unverändert. Wenn die Liste leer ist, wird das
  132.     Objekt pObject in die Liste eingefügt und es gibt weiterhin kein aktuelles
  133.     Objekt (hasAccess() == false).
  134.     Falls pObject gleich null ist, bleibt die Liste unverändert.*/
  135.     }
  136.    
  137.     void insert(Object pObject){
  138.         if(this.hasAccess() && pObject != null)
  139.         {
  140.             ListenElement lars = new ListenElement();
  141.             ListenElement merke = aktuell;
  142.             lars.setInhalt(pObject);
  143.             lars.setNachfolger(aktuell);
  144.             this.toFirst();
  145.             while(aktuell.getNachfolger() != merke)
  146.             {
  147.                 this.next();
  148.             }
  149.             aktuell.setNachfolger(lars);
  150.             aktuell = merke;
  151.         }
  152.         else if(pObject != null && this.isEmpty())
  153.         {
  154.             /*ListenElement lückenfüller = new ListenElement();
  155.             lückenfüller.setInhalt(pObject);
  156.             lückenfüller.setNachfolger(schluss);
  157.             kopf.setNachfolger(lückenfüller);*/
  158.             this.append(pObject);
  159.         }
  160.        
  161.        
  162.     /**Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird ein
  163.     neues Objekt vor dem aktuellen Objekt in die Liste eingefügt. Das
  164.     aktuelle Objekt bleibt unverändert. Falls die Liste leer ist und es somit
  165.     kein aktuelles Objekt gibt (hasAccess() == false), wird pObject
  166.     in die Liste eingefügt und es gibt weiterhin kein aktuelles Objekt. Falls
  167.     es kein aktuelles Objekt gibt (hasAccess() == false) und die Liste
  168.     nicht leer ist oder pObject gleich null ist, bleibt die Liste unverändert.*/
  169.     }
  170.    
  171.     void concat(Liste pList){
  172.         if(pList != null && !pList.isEmpty())
  173.         {
  174.             ListenElement merke = aktuell;
  175.             this.toLast();
  176.             pList.toFirst();
  177.             aktuell.setNachfolger(pList.aktuell);
  178.             aktuell = kopf;
  179.             while(aktuell != merke)
  180.             {
  181.                 this.next();
  182.             }
  183.         }
  184.     /**Die Liste pList wird an die Liste angehängt. Anschließend wird
  185.     pList eine leere Liste. Das aktuelle Objekt bleibt unverändert. Falls
  186.     pList null oder eine leere Liste ist, bleibt die Liste unverändert.*/
  187.     }
  188.    
  189.     void remove()
  190.     {
  191.         if(this.hasAccess() && !this.isEmpty())
  192.         {
  193.             ListenElement merke = aktuell;
  194.             this.toFirst();
  195.             while(aktuell.getNachfolger() != merke)
  196.             {
  197.                 this.next();
  198.             }
  199.             aktuell.setNachfolger(merke.getNachfolger());
  200.             this.next();
  201.            
  202.         }
  203.     /**Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das
  204.     aktuelle Objekt gelöscht und das Objekt hinter dem gelöschten Objekt
  205.     wird zum aktuellen Objekt. Wird das Objekt, das am Ende der Liste
  206.     steht, gelöscht, gibt es kein aktuelles Objekt mehr (hasAccess() ==
  207.     false). Wenn die Liste leer ist oder es kein aktuelles Objekt gibt
  208.     (hasAccess() == false), bleibt die Liste unverändert.*/
  209.     }
  210.    
  211.     private class ListenElement{
  212.        
  213.         private Object inhalt;
  214.         private ListenElement folger;
  215.        
  216.         public Object getInhalt(){
  217.             return inhalt;
  218.         }
  219.        
  220.         public ListenElement getNachfolger(){
  221.             return folger;
  222.         }
  223.        
  224.         public void setInhalt(Object x){
  225.             inhalt = x;
  226.         }
  227.        
  228.         public void setNachfolger(ListenElement y){
  229.             folger = y;
  230.         }
  231.        
  232.         public void clean(){
  233.             inhalt = null;
  234.             folger = null;         
  235.         }      
  236.         }
  237.        
  238.    
  239. }
Add Comment
Please, Sign In to add comment