faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:remove

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:remove [20.10.2021 16:27] sbelfaecher:informatik:oberstufe:adt:verkettete_liste:liste_java:remove [23.11.2023 16:04] (aktuell) Marco Kuemmel
Zeile 1: Zeile 1:
-====== Länge der Liste bestimmen/Neues Element Einfügen  ======+====== Löschen von Elementen ======
  
-===== Listenlänge =====+Mit der Möglichkeit, einfach eine Referenz auf das n-te Element zu erhalten hast du bereits die wichtigste Voraussetzung geschaffen, um ein Element an Position n löschen zu können.
  
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
  
-Die Länge der Liste kann man bestimmenindem man sich vom ersten Element zum letzten bewegt und dabei mit einem Zähler die verarbeiteten Elemente mit zählt.+Zeichne ein Objektdiagrammanhand dessen du den Ablauf des Löschvorgangs erläutern kannstSchreibe dann einen Merksatz stichwortartig nieder, was beim Löschen eines neuen Knotens an Position n alles passieren muss. 
 + 
 +Gibt es Fälle, die möglicherweise beim Entfernen von Listenknoten besonders berücksichtigt werden müssen?
  
 ----  ---- 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
-=== (A1) ===+=== (A2) ===
  
-  * Implementiere die Methode ''length'' +Implementiere die Methode ''removeAt'', die das n-te Element aus der Liste entfernt.
-  * Teste deine Methode mit unterschiedlich langen Listenwelchen Fall solltest du unbedingt testen?+
  
 ++++ Lösungsvorschlag | ++++ Lösungsvorschlag |
 <code java> <code java>
     /**     /**
-     Gibt die Anzahl der Elemente der Liste zurück +     Entfernt das Element, das am gegebenen Index steht, aus der Liste. 
-      +     * @param index Die Stelle, von der der Wert entfernt werden soll.
-     * @return   Anzahl der Listenelemente+
      */      */
-    public int length() { +    public void removeAt(int index) { 
-        int numElements = 0; +        if (!this.isEmpty() && index == 0) { 
-         +            this.first = first.getNext() 
-        Node<T>= first+            return;           
-         +
-        if n == null{ +
-            return numElements;+
         }         }
                  
-        numElements++;+        if (index == this.length()-1) { 
 +            Node<T> n = this.getNode(index-1); 
 +            n.setNext(null); 
 +            return; 
 +        }
                  
-        while n.getNext() != null ) { +        if index < this.length()-1 && index > 0) { 
-            n.getNext(); +            Node<T> n1 this.getNode(index-1); 
-            numElements++;+            Node<T> n2 = this.getNode(index+1); 
 +            n1.setNext(n2);
         }         }
                  
-        return numElements; 
     }     }
 </code> </code>
 ++++ ++++
  
-==== Einfügen eines neuen Elements ====+----
  
 +<btn>[[..:liste_java:|<<< Zurück zum Einfügen (am Index)]]</btn> **oder** <btn>[[..:liste_java:hasvalue|Weiter zur Suche >>> ]]</btn>
  • faecher/informatik/oberstufe/adt/verkettete_liste/liste_java/remove.1634747250.txt.gz
  • Zuletzt geändert: 20.10.2021 16:27
  • von sbel