Herausforderung: Implementierung der Methoden Size und Delete in LinkedList
Aufgabe
Sie haben drei von vier CRUD-Operationen gemeinsam implementiert. In dieser Aufgabe sollen Sie zwei Methoden implementieren:
public int size();public void delete(int index).
Die Aufgabe befindet sich auf GitHub, daher müssen Sie sie lokal in Ihrer IDE umsetzen.
Die Lösung dieser Aufgabe mit Kommentaren zur Implementierung wird Ihnen angezeigt.
Eine kurze Anleitung zur Bearbeitung dieser Aufgabe:
- Es empfiehlt sich, mit der Methode
size()zu beginnen. Zuerst sollten Sie eine Variable deklarieren, um die Anzahl der Elemente in der Liste zu verfolgen, und anschließend diese Variable einfach aus der Methode zurückgeben; - In der Methode
size()gehen Sie nach den gleichen Schritten wie in der Methodedisplay()vor. Anstatt jedoch die Elemente auf dem Bildschirm auszugeben, inkrementieren Sie die von Ihnen erstellte Variable; - In der Methode
delete()wird derindexals Parameter übergeben. Es ist wichtig, den Index zu validieren, um sicherzustellen, dass er im korrekten Bereich liegt; - Falls
index == 0, aktualisieren Sie einfach die Referenz, indem Siehead = head.nextsetzen; - Führen Sie anschließend mit einer
for-Schleife Operationen durch, um den gewünschten Index des Elements zu finden; - Sobald das benötigte Element gefunden wurde, führen Sie folgende Operation aus:
node.next = node.next.next;; - Auf diese Weise entfernen Sie die Referenz auf das gelöschte Element und löschen es somit effektiv aus der Liste.
Nachdem Sie die Aufgabe abgeschlossen haben, können Sie die main-Methode ausführen, in der einige Tests für Sie bereitgestellt sind.
Zusätzlich können Sie die Unit-Tests im Ordner test ausführen, um Ihre Lösung zu validieren.
- Sorgfältiges Iterieren – bei der Implementierung der Methode
size()die Liste wie beidisplay()durchlaufen, jedoch anstelle der Ausgabe der Werte einen Zähler inkrementieren; - Beachtung von Sonderfällen – in der Methode
delete()stets prüfen, obindex == 0gilt, umheadkorrekt zu aktualisieren, und sicherstellen, dass der Index innerhalb der Grenzen liegt, bevor Sie fortfahren; - Korrektes Aktualisieren der Verknüpfungen – beim Löschen eines Knotens
current.next = current.next.nextsetzen, um das Element zu überspringen und es somit effektiv aus der Liste zu entfernen.
package com.example;
class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
class SinglyLinkedList {
private Node head;
public SinglyLinkedList() {
this.head = null;
}
public void append(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
return;
}
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
public void display() {
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
public void update(int index, int newData) {
if (index < 0 || index >= size()) {
System.out.println("Invalid index");
return;
}
Node current = head;
for (int i = 0; i < index; i++) {
current = current.next;
}
current.data = newData;
}
public void delete(int index) {
if (index < 0 || index >= size()) {
System.out.println("Invalid Index");
return;
}
if (index == 0) {
head = head.next;
return;
}
Node current = head;
for (int i = 0; i < index - 1; i++) {
current = current.next;
}
current.next = current.next.next;
}
public int size() {
int count = 0;
Node current = head;
while (current != null) {
count++;
current = current.next;
}
return count;
}
}
public class Main {
public static void main(String[] args) {
SinglyLinkedList linkedList = new SinglyLinkedList();
// Adding elements to the end of the list (Create)
linkedList.append(1);
linkedList.append(2);
linkedList.append(3);
linkedList.append(4);
// Displaying the content of the list (Read)
System.out.println("Contents of the list:");
linkedList.display();
// Updating a value by index (Update)
linkedList.update(2, 10);
System.out.println("List after updating the value at index 2:");
linkedList.display();
// Deleting an element by index (Delete)
linkedList.delete(1);
System.out.println("List after deleting the element at index 1:");
linkedList.display();
}
}
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Großartig!
Completion Rate verbessert auf 4
Herausforderung: Implementierung der Methoden Size und Delete in LinkedList
Swipe um das Menü anzuzeigen
Aufgabe
Sie haben drei von vier CRUD-Operationen gemeinsam implementiert. In dieser Aufgabe sollen Sie zwei Methoden implementieren:
public int size();public void delete(int index).
Die Aufgabe befindet sich auf GitHub, daher müssen Sie sie lokal in Ihrer IDE umsetzen.
Die Lösung dieser Aufgabe mit Kommentaren zur Implementierung wird Ihnen angezeigt.
Eine kurze Anleitung zur Bearbeitung dieser Aufgabe:
- Es empfiehlt sich, mit der Methode
size()zu beginnen. Zuerst sollten Sie eine Variable deklarieren, um die Anzahl der Elemente in der Liste zu verfolgen, und anschließend diese Variable einfach aus der Methode zurückgeben; - In der Methode
size()gehen Sie nach den gleichen Schritten wie in der Methodedisplay()vor. Anstatt jedoch die Elemente auf dem Bildschirm auszugeben, inkrementieren Sie die von Ihnen erstellte Variable; - In der Methode
delete()wird derindexals Parameter übergeben. Es ist wichtig, den Index zu validieren, um sicherzustellen, dass er im korrekten Bereich liegt; - Falls
index == 0, aktualisieren Sie einfach die Referenz, indem Siehead = head.nextsetzen; - Führen Sie anschließend mit einer
for-Schleife Operationen durch, um den gewünschten Index des Elements zu finden; - Sobald das benötigte Element gefunden wurde, führen Sie folgende Operation aus:
node.next = node.next.next;; - Auf diese Weise entfernen Sie die Referenz auf das gelöschte Element und löschen es somit effektiv aus der Liste.
Nachdem Sie die Aufgabe abgeschlossen haben, können Sie die main-Methode ausführen, in der einige Tests für Sie bereitgestellt sind.
Zusätzlich können Sie die Unit-Tests im Ordner test ausführen, um Ihre Lösung zu validieren.
- Sorgfältiges Iterieren – bei der Implementierung der Methode
size()die Liste wie beidisplay()durchlaufen, jedoch anstelle der Ausgabe der Werte einen Zähler inkrementieren; - Beachtung von Sonderfällen – in der Methode
delete()stets prüfen, obindex == 0gilt, umheadkorrekt zu aktualisieren, und sicherstellen, dass der Index innerhalb der Grenzen liegt, bevor Sie fortfahren; - Korrektes Aktualisieren der Verknüpfungen – beim Löschen eines Knotens
current.next = current.next.nextsetzen, um das Element zu überspringen und es somit effektiv aus der Liste zu entfernen.
package com.example;
class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
class SinglyLinkedList {
private Node head;
public SinglyLinkedList() {
this.head = null;
}
public void append(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
return;
}
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
public void display() {
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
public void update(int index, int newData) {
if (index < 0 || index >= size()) {
System.out.println("Invalid index");
return;
}
Node current = head;
for (int i = 0; i < index; i++) {
current = current.next;
}
current.data = newData;
}
public void delete(int index) {
if (index < 0 || index >= size()) {
System.out.println("Invalid Index");
return;
}
if (index == 0) {
head = head.next;
return;
}
Node current = head;
for (int i = 0; i < index - 1; i++) {
current = current.next;
}
current.next = current.next.next;
}
public int size() {
int count = 0;
Node current = head;
while (current != null) {
count++;
current = current.next;
}
return count;
}
}
public class Main {
public static void main(String[] args) {
SinglyLinkedList linkedList = new SinglyLinkedList();
// Adding elements to the end of the list (Create)
linkedList.append(1);
linkedList.append(2);
linkedList.append(3);
linkedList.append(4);
// Displaying the content of the list (Read)
System.out.println("Contents of the list:");
linkedList.display();
// Updating a value by index (Update)
linkedList.update(2, 10);
System.out.println("List after updating the value at index 2:");
linkedList.display();
// Deleting an element by index (Delete)
linkedList.delete(1);
System.out.println("List after deleting the element at index 1:");
linkedList.display();
}
}
Danke für Ihr Feedback!