Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1. /**
  2.  * Eine zyklische Listenstruktur, die sich erst zum Zyklus verbindet, sobald die
  3.  * maximal erlaubte Anzahl an Elementen erreicht wurde
  4.  *
  5.  * @author Team OOPM 1415
  6.  *
  7.  */
  8. public class CycleList {
  9.  
  10.     private CycleListElement first;
  11.     private CycleListElement last;
  12.     public int maxLength;
  13.     public int actualLength;
  14.  
  15.     /**
  16.      * Konstruktor der zyklischen Liste
  17.      *
  18.      * @param maxLength
  19.      */
  20.     public CycleList(int maxLength) {
  21.         this.maxLength = maxLength;
  22.         actualLength = 0;
  23.         first = null;
  24.         last = first;
  25.     }
  26.  
  27.     /*
  28.      * TO DO: Implementieren Sie zunächst getter und setter
  29.      */
  30.     public void setFirst(CycleListElement newfirst) {
  31.         newfirst.setNext(first);
  32.         first = newfirst;
  33.         if (first.getNext() == null)
  34.             last = first;
  35.         actualLength++;
  36.  
  37.     }
  38.  
  39.     public CycleListElement getFirst() {
  40.         return first;
  41.     }
  42.  
  43.     public void setLast(CycleListElement newLast) {
  44.         if (last == null)
  45.             first = newLast;
  46.         else
  47.             last.setNext(newLast);
  48.         last = newLast;
  49.         actualLength++;
  50.  
  51.     }
  52.  
  53.     public CycleListElement getLast() {
  54.         return last;
  55.     }
  56.  
  57.     /*
  58.      * TO DO: Implementieren Sie nun eine add Funktion, welche berücksichtigt,
  59.      * dass ein Erreichen der maximalen Größe dazu führt, dass das letzte
  60.      * Element auf das erste zeigt.
  61.      */
  62.     public void add(CycleListElement elem) {
  63.         if (actualLength < maxLength) {
  64.             setFirst(elem);
  65.             if (actualLength == maxLength) {
  66.                 last.setNext(first);
  67.             }
  68.         }
  69.     }
  70.  
  71.     /*
  72.      * TO DO: Implementieren Sie nun eine deleteFirst Funktion. Diese soll
  73.      * berücksichtigen, dass das Entfernen des ersten Elements Auswirkung auf
  74.      * die momentane Länge und ggf. den zyklischen Zustand hat.
  75.      */
  76.     public void deleteFirst() {
  77.         if (actualLength == maxLength) {
  78.             if (last != null) {
  79.                 last.setNext(null);
  80.             }
  81.             if (first != null) {
  82.                 last = first.getNext();
  83.                 actualLength--;
  84.             }
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement