Guten Tag,
ich habe eine Aufgabe erhalten, und muss die Aufgabe erweitern.
Erweitern Sie die verkette Liste so, dass das Listenende beim Anhängen nicht immer wieder neu ermittelt werden muss, sondern neue Elemente direkt am
Ende der Liste angehängt werden können. Hängen Sie zum Test mindestens 20 Elemente an.
Hilfestellungen:
- Sie müssen neben dem Anfang der Liste jetzt auch das Ende der Liste in einer Variablen speichern können.
- Erstellen Sie eine Methode, die Ihnen das aktuelle Ende der Liste zurück liefert. Alternativ können Sie sich einfach das Listenende auch von der Methode zum Anhängen liefern lassen.
- Setzen Sie den Wert der Variablen für das Listenende nach dem Anhängen neuer Elemente jeweils auf das aktuelle Ende der Liste und rufen Sie dann die Methode zum Anhängen neuer Listenelemente mit diesem Wert neu auf.
[CODE lang="java" title="Verkette Liste"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Die Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
void anhaengen(String datenNeu) {
if (naechster == null) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
System.out.println("Daten\t"+datenNeu+"\t wurden eingefügt.");
}
else
naechster.anhaengen(datenNeu);
}
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
}
public class ListeV3 {
public static void main(String[] args) {
Listenelement listenAnfang = new Listenelement();
listenAnfang.setDaten("Element1");
for (int element = 2; element < 4; element++)
listenAnfang.anhaengen("Element"+element);
listenAnfang.ausgeben();
}
}
[/CODE]
Ich habe den Code erweitert und Einiges verändert, ich würde gerne Wissen, ob ich Alle Kriterien erfüllt habe ?
[CODE lang="java" title="Verkette Liste Erweitert"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
// Methode zum Anhängen
Listenelement anhaengen(String datenNeu) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
return naechster;
}
// Methode zur Ausgabe
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
}
public class ListeV5 {
public static void main(String[] args) {
// Neues Listenelement erzeugen.
Listenelement listenAnfang = new Listenelement();
// Daten in ersten Listenelement setzen.
listenAnfang.setDaten("Element1");
// Neues Listenelement erzeugen.
Listenelement listenEnde = new Listenelement();
listenEnde = listenAnfang;
// Weitere elemente mit der Schleife einfügen
for (int element = 2; element < 21; element++)
listenEnde = listenEnde.anhaengen("Element"+element);
// Liste ausgeben
listenAnfang.ausgeben();
}
}
[/CODE]
Jetzt folgt noch eine Erweiterung, die nicht funktioniert. Eventuell kleiner Fehler ?
Jetzt soll die Liste auch rückwärts ausgegeben werden können.
[CODE lang="java" title="Verkette Liste rückwärts"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Die Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
// Methode zum Anhängen
Listenelement anhaengen(String datenNeu) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
return naechster;
}
// Methode zur Ausgabe
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
// Methode zur Ausgabe Rückwärts (Rekursiv)
void ausgebenR() {
if ( naechster !=null) {
naechster.ausgeben();
System.out.println(daten);
}
}
public class ListeV6 {
public static void main(String[] args) {
// Neues Listenelement erzeugen.
Listenelement listenAnfang = new Listenelement();
// Daten in ersten Listenelement setzen.
listenAnfang.setDaten("Element:1");
// Neues Listenelement erzeugen.
Listenelement listenEnde = new Listenelement();
listenEnde = listenAnfang;
// Weitere elemente mit der Schleife einfügen
for (int element = 2; element < 21; element++)
listenEnde = listenEnde.anhaengen("Element:"+element);
// Liste ausgeben Vorwärts
listenAnfang.ausgeben();
// Liste ausgeben Rückwärts
listenAnfang.ausgebenR();
}
}
[/CODE]
ich habe eine Aufgabe erhalten, und muss die Aufgabe erweitern.
Erweitern Sie die verkette Liste so, dass das Listenende beim Anhängen nicht immer wieder neu ermittelt werden muss, sondern neue Elemente direkt am
Ende der Liste angehängt werden können. Hängen Sie zum Test mindestens 20 Elemente an.
Hilfestellungen:
- Sie müssen neben dem Anfang der Liste jetzt auch das Ende der Liste in einer Variablen speichern können.
- Erstellen Sie eine Methode, die Ihnen das aktuelle Ende der Liste zurück liefert. Alternativ können Sie sich einfach das Listenende auch von der Methode zum Anhängen liefern lassen.
- Setzen Sie den Wert der Variablen für das Listenende nach dem Anhängen neuer Elemente jeweils auf das aktuelle Ende der Liste und rufen Sie dann die Methode zum Anhängen neuer Listenelemente mit diesem Wert neu auf.
[CODE lang="java" title="Verkette Liste"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Die Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
void anhaengen(String datenNeu) {
if (naechster == null) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
System.out.println("Daten\t"+datenNeu+"\t wurden eingefügt.");
}
else
naechster.anhaengen(datenNeu);
}
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
}
public class ListeV3 {
public static void main(String[] args) {
Listenelement listenAnfang = new Listenelement();
listenAnfang.setDaten("Element1");
for (int element = 2; element < 4; element++)
listenAnfang.anhaengen("Element"+element);
listenAnfang.ausgeben();
}
}
[/CODE]
Ich habe den Code erweitert und Einiges verändert, ich würde gerne Wissen, ob ich Alle Kriterien erfüllt habe ?
[CODE lang="java" title="Verkette Liste Erweitert"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
// Methode zum Anhängen
Listenelement anhaengen(String datenNeu) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
return naechster;
}
// Methode zur Ausgabe
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
}
public class ListeV5 {
public static void main(String[] args) {
// Neues Listenelement erzeugen.
Listenelement listenAnfang = new Listenelement();
// Daten in ersten Listenelement setzen.
listenAnfang.setDaten("Element1");
// Neues Listenelement erzeugen.
Listenelement listenEnde = new Listenelement();
listenEnde = listenAnfang;
// Weitere elemente mit der Schleife einfügen
for (int element = 2; element < 21; element++)
listenEnde = listenEnde.anhaengen("Element"+element);
// Liste ausgeben
listenAnfang.ausgeben();
}
}
[/CODE]
Jetzt folgt noch eine Erweiterung, die nicht funktioniert. Eventuell kleiner Fehler ?
Jetzt soll die Liste auch rückwärts ausgegeben werden können.
[CODE lang="java" title="Verkette Liste rückwärts"]class Listenelement {
// Instanzvariablen
String daten;
Listenelement naechster;
// Die Methode zum setzen der Daten.
void setDaten (String datenNeu) {
daten = datenNeu;
naechster = null;
}
// Methode zum Anhängen
Listenelement anhaengen(String datenNeu) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
return naechster;
}
// Methode zur Ausgabe
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
// Methode zur Ausgabe Rückwärts (Rekursiv)
void ausgebenR() {
if ( naechster !=null) {
naechster.ausgeben();
System.out.println(daten);
}
}
public class ListeV6 {
public static void main(String[] args) {
// Neues Listenelement erzeugen.
Listenelement listenAnfang = new Listenelement();
// Daten in ersten Listenelement setzen.
listenAnfang.setDaten("Element:1");
// Neues Listenelement erzeugen.
Listenelement listenEnde = new Listenelement();
listenEnde = listenAnfang;
// Weitere elemente mit der Schleife einfügen
for (int element = 2; element < 21; element++)
listenEnde = listenEnde.anhaengen("Element:"+element);
// Liste ausgeben Vorwärts
listenAnfang.ausgeben();
// Liste ausgeben Rückwärts
listenAnfang.ausgebenR();
}
}
[/CODE]