Advertisement
exnon

PTP1-SoSe2018_DoppellinkKnoten

Jul 3rd, 2019
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. public void entferne(Character element)
  2.     {
  3.         // TODO implementieren für Aufgabe 2
  4.         DoppellinkKnoten k1 = _listenkopf;
  5.         DoppellinkKnoten k1V;
  6.         DoppellinkKnoten k1N;
  7.         boolean enthalten = false;
  8.         for (int i=0;i<_anzahlElemente;i++){
  9.             k1 = k1.gibNachfolger();
  10.             k1N = k1.gibNachfolger();
  11.             k1V = k1.gibVorgaenger();
  12.             if(k1.gibElement()==element){
  13.                 k1N.setzeVorgaenger(k1V);
  14.                 k1V.setzeNachfolger(k1N);
  15.                 _anzahlElemente--;
  16.                 enthalten =true;
  17.             }
  18.            
  19.         }
  20.         if (!enthalten){throw new IllegalArgumentException();}
  21.     }
  22.  
  23.     /**
  24.      * Vertauscht die Knoten, welche durch den jeweiligen Index referenziert werden.
  25.      * Der Knoten, welcher sich an der Position <code>index1</code> befindet wird am
  26.      * <code>index2</code> eingefuegt.
  27.      * Entsprechend wird der Knoten, der sich an der Position <code>index2</code> befindet an der
  28.      * Position <code>index1</code> eingefuegt.
  29.      *
  30.      * @param index1 Der Index des ersten Knotens.
  31.      * @param index2 Der Index des zweiten Knotens.
  32.      *
  33.      * @throws IllegalArgumentException, wenn einer der Knoten nicht in der Liste enthalten ist.
  34.      */
  35.     public void vertauscheKnoten(int index1, int index2)
  36.     {
  37.         // TODO implementieren für Aufgabe 2
  38.         DoppellinkKnoten k1 = knotenAnPosition(index1);
  39.         DoppellinkKnoten k2 = knotenAnPosition(index2);
  40.        
  41.         DoppellinkKnoten k1V = k1.gibVorgaenger();
  42.         DoppellinkKnoten k1N = k1.gibNachfolger();
  43.        
  44.         DoppellinkKnoten k2V = k2.gibVorgaenger();
  45.         DoppellinkKnoten k2N = k2.gibNachfolger();
  46.  
  47.         k2.setzeNachfolger(k1N);
  48.         k2.setzeVorgaenger(k1V);
  49.  
  50.         k1V.setzeNachfolger(k2);
  51.         k1N.setzeVorgaenger(k2);
  52.  
  53.         k1.setzeNachfolger(k2N);
  54.         k1.setzeVorgaenger(k2V);
  55.  
  56.         k2V.setzeNachfolger(k1);
  57.         k2N.setzeVorgaenger(k1);
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement