verkettete liste

raver1

Mitglied
Gute tag

ich steh vor einem Problem:

Ich habe folgende Quellcodes
Java:
/*######################################
 * Eine verkettete Liste Version 2
 ######################################*/

//die Klasse für die Listenelemente
//jetzt auch mit Methoden
class Listenelement {
		String daten;
		Listenelement naechster;

		//die Methode zum Setzen der Daten
		void setDaten(String datenNeu) {
			//die Zeichenkette setzen
			daten = datenNeu;
			//das Ende markieren
			naechster = null;
		}

		//die Methode zum Anhängen eines neuen Elements
		//sie ruft sich rekursiv auf, bis das Ende erreicht ist
		void anhaengen(String datenNeu) {
			//wenn das Ende erreicht ist, ein neues Element erzeugen
			if (naechster == null) {
				naechster = new Listenelement();
				naechster.setDaten(datenNeu);
			}
			//sonst ruft sich die Methode selbst wieder auf
			else
				naechster.anhaengen(datenNeu);
			//nur zur Veranschaulichung
			System.out.println("Daten " + datenNeu + " wurden eingefügt.");
		}

		//die Methode zur Ausgabe der Liste
		//sie ruft sich ebenfalls rekursiv auf, bis das Ende erreicht ist
		void ausgeben() {
			System.out.println(daten);
			if (naechster != null)
				naechster.ausgeben();
		}
	}

public class Java05_10 {
	public static void main(String[] args) {
		//ein neues Listenelement erzeugen
		Listenelement listenAnfang = new Listenelement();

		//die Daten im ersten Listenelement setzen
		listenAnfang.setDaten("Element 1");

		//weitere Elemente in einer Schleife einfügen
		for (int element = 2; element < 4; element++)
			listenAnfang.anhaengen("Element " + element);

		//die Liste ausgeben
		listenAnfang.ausgeben();
	}
}

Dieser Code soll ergänzt werden Die Aufgabenstellung lautet so:

1: Erweitern sie die Version 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


Als zweites hab ich folgenden Code:

Java:
/*##########################################
 * Eine verkettete Liste Version 1
############################################ */
//die Klasse für die Listenelemente
//Sie enthält nur Instanzvariablen für die Daten und den
//Nachfolger, aber keine Methoden
class Listenelement {
		String daten;
		Listenelement naechster;
}

public class Java05_09 {
	//Klassenmethoden für die Verarbeitung der Liste

	//die Daten für ein Element setzen
	//übergeben wird die Zeichenkette und das Element der Liste
	static void setDaten(String datenNeu, Listenelement element) {
		//die Zeichenkette setzen
		element.daten = datenNeu;
		//das Ende markieren
		element.naechster = null;
	}

	//eine neues Element am Ende der Liste einfügen
	//übergeben wird die Zeichenkette und der Listenanfang
	//das eigentliche Einfügen erfolgt über die Methode setDaten()
	static void listeAnhaengen(String datenNeu, Listenelement listenAnfang) {
		//eine Hilfskonstruktion zum Wandern in der Liste
		Listenelement hilfsKonstruktion;
		hilfsKonstruktion = listenAnfang;
		//durch die Liste gehen, bis das Ende erreicht ist
		while (hilfsKonstruktion.naechster != null)
			hilfsKonstruktion = hilfsKonstruktion.naechster;

		//neues Element am Ende der Liste einfügen
		hilfsKonstruktion.naechster = new Listenelement();

		//Hilfskonstruktion auf das neue Element setzen
		hilfsKonstruktion = hilfsKonstruktion.naechster;

		//die Daten eintragen
		setDaten(datenNeu, hilfsKonstruktion);
	}

	//die Ausgabe der kompletten Liste
	static void listeAusgeben(Listenelement listenAnfang) {
		//die Hilfskonstruktion
		Listenelement hilfsKonstruktion;
		hilfsKonstruktion = listenAnfang;
		//erstes Element ausgeben
		System.out.println(hilfsKonstruktion.daten);

		//und nun den Rest
		while (hilfsKonstruktion.naechster != null) {
			hilfsKonstruktion = hilfsKonstruktion.naechster;
			System.out.println(hilfsKonstruktion.daten);
		}
	}

	public static void main(String[] args) {
		//ein neues Listenelement erzeugen
		Listenelement listenAnfang = new Listenelement();

		//die Daten im ersten Listenelement setzen
		setDaten("Element 1", listenAnfang);

		//weitere Elemente in einer Schleife einfügen
		for (int element = 2; element < 4; element++)
			listeAnhaengen("Element " + element, listenAnfang);

		//die Liste ausgeben
		listeAusgeben(listenAnfang);
	}
}


Hierzu hab ich folgende Aufgabe:

2: Erweitern Sie die Liste mit Objekten so das diese Liste auch rückwärts ausgegeben werden kann.
Erstellen sie dazu eine Methode die sich rekursiv aufruft


Zusätzlich wär ne kleine Erklärung gut wie der Code funktioniert denn ich steh bei den verketteten Listen ziemlich auf dem Schlauch. Das wurde nur einmal ganz kurz erläutert und ich habe es (leider) ÜBERHAUPT nicht verstanden. ;_(

Aber ich will ja auch verstehen was ihr da gemacht habt.. bzw. was ich machen soll ;-)

Danke schon mal im vorraus

gruß raver
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Das prinzip ist mit bissel googeln schnell gefunden.

Besser, als wenn man es hier erklärt:

Das Prinzip ist einfach --> Du hast ein Item, welches auf das nächste zeigt.

Item --> Item --> Item

Wenn du nun hier ein neues Item hinzufügen willst, dann musst du das letzte Item identifizieren, also von vorne bis hinten durchlaufen und solange bis Item.next == null (also er zeigt auf nix)

Um das abzukürzen kannst du dir das letze Item immer merken.

Bei der doppel verkettung zeigt das Item auf den nächsten und vorgänger.

Bei der Rekursion wird zunächst nach unten iteriert und dann werden die Items bei dem letzten aufruf der Methode ausgegeben.. Dann erscheint die Liste rückwärts.

Gruß,

Marcinek
 

raver1

Mitglied
okay..soweit hab ich das verstanden ;_)

Jetzt brauch ich nur noch Hilfe bei den Aufgaben. weil ich gerade nicht weiß wie ich das in Java umsetzen kann trotzdem danke
 
M

Marcinek

Gast
Ich würde (in diesem Fall) in Listenelement statisch das letzte Element abspeichern.

und anhängen würde immer an dieses Element anhängen und dann das statische Element ersetzen.

---

Bei dem anderen brauchst du eine Rekursive Methode
Java:
static void listeAusgebenRek(Listenelement listenAnfang) {
    if(listenAnfang.next != null) {
          listeAusgebenRek(listenAnfang.next);
     } 

      // Ausgeben
}
 

raver1

Mitglied
Danke für die Antwort

Die rekursive Methode hab ich verstanden und auch eingefügt

Jedoch ist mir nicht ganz klar wie das mit der statischen Speichermethode bzw. dem Elemente anhängen gemeint ist bzw wie ich das in Java schreiben soll.

Da ich aber in dieser Woche noch damit fertig sein muss und auch nicht das ganze Wochenende dafür opfern kann ;-) würde ich euch/dich bitten mir mal den Code für meine Aufgabenstellung zu schicken
wenn ihr/du Zeit habt/hast. ;-)

Das wär echt nett und sobald ich das geschafft habe lern ich auch noch mal ;-)

Danke schon mal

raver
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Ich formuliere es anders:

Wieviel ist dir das Wert? (In €)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Verkettete Liste Java Basics - Anfänger-Themen 1
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
A Verkettete Liste Java Basics - Anfänger-Themen 2
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
L verkettete Liste Java Basics - Anfänger-Themen 15
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
H Verkettete Liste Java Basics - Anfänger-Themen 7
N Verkettete liste rückwärts ausgeben Java Basics - Anfänger-Themen 18
K Verkettete Liste und seine Methoden Java Basics - Anfänger-Themen 1
N Verkettete Liste implementieren Java Basics - Anfänger-Themen 5
O Einfach verkettete Liste - Revert Methode Java Basics - Anfänger-Themen 1
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
R Erste Schritte Verkettete Liste will einfach nicht in meinen Schädel Java Basics - Anfänger-Themen 11
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
L Doppelt verkettete Liste Java Basics - Anfänger-Themen 6
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
V Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 3
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
K Einfach Verkettete Liste - addFirst() Java Basics - Anfänger-Themen 7
G 2 Aufgabe rund um eine verkettete Liste Java Basics - Anfänger-Themen 2
O Verkettete Liste Java Basics - Anfänger-Themen 10
E Methoden auf von Methoden erstellte Objekte zugreifen (verkettete Liste) Java Basics - Anfänger-Themen 10
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
S Doppelt verkettete Liste Java Basics - Anfänger-Themen 3
G Doppelt Verkettete Liste Java Basics - Anfänger-Themen 2
A Doppelt Verkettete Liste Java Basics - Anfänger-Themen 16
E doppelt verkettete liste Java Basics - Anfänger-Themen 10
V Verkettete Liste. Java Basics - Anfänger-Themen 7
X Einfach Verkettete Liste Java Basics - Anfänger-Themen 16
K Verkettete Liste - Methode entwerfen Java Basics - Anfänger-Themen 14
S Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 12
B Insertionsort verkettete Liste Java Basics - Anfänger-Themen 4
B Stack in eine verkettete Liste pushen Java Basics - Anfänger-Themen 4
R verkettete liste ansEndeSchieben Java Basics - Anfänger-Themen 13
T Verkettete Liste Java Basics - Anfänger-Themen 14
A Klassen Innere Klassen, verkettete Liste Java Basics - Anfänger-Themen 9
B Zweifach-verkettete Liste umkehren Java Basics - Anfänger-Themen 6
X verkettete Liste Java Basics - Anfänger-Themen 13
E Datentypen Doppelt verkettete Liste Java Basics - Anfänger-Themen 10
P Einfügen in doppelt verkettete Liste Java Basics - Anfänger-Themen 7
kae verkettete Liste Java Basics - Anfänger-Themen 5
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
B OOP Verkettete Liste Java Basics - Anfänger-Themen 7
M Verkettete Liste Java Basics - Anfänger-Themen 4
M verkettete liste Java Basics - Anfänger-Themen 7
N doppelt verkettete liste einfügen Java Basics - Anfänger-Themen 7
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
N einfach verkettete liste fehler Java Basics - Anfänger-Themen 5
N einfach verkettete liste Java Basics - Anfänger-Themen 3
G verkettete Liste - invertieren Java Basics - Anfänger-Themen 2
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
B verkettete Liste Java Basics - Anfänger-Themen 8
S zyklisch verkettete Liste erstellen Java Basics - Anfänger-Themen 3
S einfach verkettete Liste Java Basics - Anfänger-Themen 19
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
W Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 2
T Einfach verkettete Liste: Wie Elemente löschen? Java Basics - Anfänger-Themen 4
J verkettete Liste Java Basics - Anfänger-Themen 2
D Einfach verkettete Liste Java Basics - Anfänger-Themen 20
DasDogma Verkettete Liste - Element löschen Java Basics - Anfänger-Themen 2
H Verkettete Liste Java Basics - Anfänger-Themen 5
M verkettete Liste auslesen Java Basics - Anfänger-Themen 7
K eigene verkettete Liste Java Basics - Anfänger-Themen 4
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
A Eine verkettete Liste Java Basics - Anfänger-Themen 43
G verkettete lineare Liste Java Basics - Anfänger-Themen 2
L verkettete Liste - Ausgabeproblem Java Basics - Anfänger-Themen 2
G Wie kann ich eine verkettete Liste in ein JTable einfügen? Java Basics - Anfänger-Themen 7
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
R ArrayList Objekt -> verkettete Liste Java Basics - Anfänger-Themen 4
R verkettete Liste Java Basics - Anfänger-Themen 13
R verkettete Liste in und aus Datei Java Basics - Anfänger-Themen 5
M Doppelt verkettete Liste Zeiger Vorgänger beim Einfügen Java Basics - Anfänger-Themen 2
J doppelt verkettete Liste Java Basics - Anfänger-Themen 5
L doppelt verkettete Liste Java Basics - Anfänger-Themen 6
C einfach verkettete Liste -> Elemente vertauschen Java Basics - Anfänger-Themen 2
0 Binärbaum als verkettete Liste Java Basics - Anfänger-Themen 3
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
G Dopplelt verkettete liste Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
R einfach verkettete Liste, intersect Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben