Verkette Listen ?

Status
Nicht offen für weitere Antworten.

kaper28

Bekanntes Mitglied
Code:
*######################################
 * 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");

		listenEnde.setDaten("element");
		//weitere Elemente in einer Schleife einfügen
		for (int element = 2; element < 100; element++)
			listenAnfang.anhaengen("Element " + element);
		listenEnde.anhaengen("element");
		//die Liste ausgeben
		listenAnfang.ausgeben();
		
	}
}
Hallo Freunde,

Ich habe hier eine Verkette Liste . Wenn ich einen neuen Element einfüge fängt ja die Liste immer von vorne an, bei sehr langen listen dauert das . Kann ich auch einen element direkt an der Liste ende anhängen ohne das die liste von vorne begint ?

Ich habe so eine lösung gefunden . Die Instanz ( listenanfang) zeigt ja immer auf den anfang der liste also das erste element in der liste . Dann kann ich auch eine Instanz erzeugen die das ende der Liste zeigt

Listenelement listenEnde = new Listenelement();

Dann kann ich eine Methode erstellen , die die aktuelle ende der lsite zürückleifert .

void listenende() {
hier bleibe ich stecken ....

}

mfg
kaper28

hier an dieser stelle kann ich nicht weiter .....
 

Marco13

Top Contributor
void listenende() {
return listenEnde;
}

Ganz so geht das aber nicht: Du darfst keine neue Instanz erzeugen (das wäre ja dann wie zwei Unterschiedliche Listen). Stattdessen must du explizit dafür sorgen, dass "ende" immer auf's letzte Element zeigt.

0 Einträge:
start == null und ende == null

1 Eintrag
start = ende (!)

>1 Einträge:
start != ende

Wenn die Liste >0 Elemente enthält, und ein neues Element eingefügt wird, zeigt "ende" also immer auf das neu eingefügte Element.
 

chb92

Neues Mitglied
Hi bin auch Anfänger,

sollte man nicht besser ein Element "letztes" in der Klasse für die Liste verwenden?
Diese dann aber statisch deklarieren.

Grüße chb92
 

kaper28

Bekanntes Mitglied
Marco13 hat gesagt.:
void listenende() {
return listenEnde;
}

Ganz so geht das aber nicht: Du darfst keine neue Instanz erzeugen (das wäre ja dann wie zwei Unterschiedliche Listen). Stattdessen must du explizit dafür sorgen, dass "ende" immer auf's letzte Element zeigt.

0 Einträge:
start == null und ende == null

1 Eintrag
start = ende (!)

>1 Einträge:
start != ende

Wenn die Liste >0 Elemente enthält, und ein neues Element eingefügt wird, zeigt "ende" also immer auf das neu eingefügte Element.
Hallo Marco,

ja das stimmt mit dem zeiten geht nicht da habe ich eine zweite liste. Nur wie füge ich die elementw ein ? das habe ich nicht verstaden .

ich muß eine instanz haben um die ende der liste speichern zu können .
mfg
pacali
 

kaper28

Bekanntes Mitglied
Code:
/*######################################
 * Eine verkettete Liste Version 2
 ######################################*/

//die Klasse für die Listenelemente
//jetzt auch mit Methoden
class Listenelement {
	String daten;
	Listenelement naechster;
	Listenelement listenEnde;
	//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 undn daten setzen.
		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();
		Listenelement listenEnde = new Listenelement();

		//die Daten im ersten Listenelement setzen
		listenAnfang.setDaten("Element 1");
	listenEnde.setDaten("Letzter Element");
		
		//weitere Elemente in einer Schleife einfügen
		for (int element = 2; element <3; element++)
		{
			listenAnfang.anhaengen("Element " + element);
			
		
		//die Liste ausgeben
		listenAnfang.ausgeben();
		listenEnde.ausgeben();
	}
}
}

Ausgabe in der Console :


Daten Element 2 wurden eingefügt.
Element 1
Element 2
Letzter Element



Habe ich jetzt ein element angehangen oder nur erzuegt ?
 

HLX

Top Contributor
Du hast schon wieder zwei getrennte Listen: ListenAnfang und ListenEnde

Lass das Listenelement mal Listenelement sein und implementiere den Algorithmus für das Anhängen in einer Listenklasse. Das Listenelement kannst du als innere Klasse in der Listenklasse definieren. Es kennt nur die übermittelten Daten und seinen Nachfolger und hat ansonsten keine Funktion.

In der Main rufst du dann auf:
Code:
MeineListe liste = new MeineListe();
liste.anhaengen("Super");
liste.anhaengen("funktioniert");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
K Verkette Listen Java Basics - Anfänger-Themen 13
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
S Einfach verkette Liste Java Basics - Anfänger-Themen 27
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
H Datentypen Doppelte Verkette Liste - Verständnissproblem Java Basics - Anfänger-Themen 5
C verkette liste sortieren? Java Basics - Anfänger-Themen 7
W Rekursion und verkette Liste Java Basics - Anfänger-Themen 5
I einfach verkette Liste Java Basics - Anfänger-Themen 9
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H doppelt verkette liste Java Basics - Anfänger-Themen 2
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
L Lineare Listen Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Listen sortieren Java Basics - Anfänger-Themen 3
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
Y Collections 4 Listen Java Basics - Anfänger-Themen 14
S OOP/ Listen...etc... Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben