Listen verdoppeln

Status
Nicht offen für weitere Antworten.

Andy85

Mitglied
Hallo alle zusammen,

ich wollte zwei Listen Listen zu einer neuen Liste zusammenführen und diese anschlieschend ausgeben. Die beiden Klassen sehen bis jetzt so aus:
Code:
public class Knoten {
	int wert;
	Knoten naechster;
	
	Knoten( int w, Knoten k) {
		this.wert = w;
		this.naechster = k;
	}
}

und die andere Klasse:
Code:
public class KnotenTest {

	
	public static void drucke(Knoten listHead){
		while (listHead != null){
			System.out.print(listHead.wert+" ");
			listHead = listHead.naechster;
		}
		System.out.println();
	}
	public static void main(String[] args) {
		Knoten list1 = new Knoten(3, new Knoten(17, new Knoten(8, null)));
		Knoten list2 = new Knoten(99, new Knoten(11, new Knoten(22, null)));
		drucke(list1);
	}
}

Eine grobe Vorstellung der Methode zum Zusammenführen habe ich schon:
Code:
	public static void vereine(Knoten listHead1, Knoten listHead2){
   Knoten listTmp
		// Hier könnte eine while-Schleife hin
                ...
   while (listTmp != null){
			System.out.print(listTmp.wert+" ");
			listTmp = listTmp.naechster;
		}
		System.out.println();
      
}

Aber hier hört es schon wieder auf. Habe keine Idee wie ich den Rest implementieren soll. Ein Gedanke wäre, eine neue Liste erzeugen, mit ner while-Schleife prüfen, dass das nächste Element nicht null ist und die Liste(listTmp) mit den Werten der beiden Listen listHead1 und listHead2 zu füllen.
Weiß einer wie ich das anstellen können?
Schon mal danke im vorraus.
MfG
 
S

SlaterB

Gast
tja, du könntest eine 'Liste' durchlaufen und als next des letzen Elementes (bisher null) den Kopf der zweiten Liste setzen,
schon sind sie zusammen

----------


eine oder beide Listen zu durchlaufen und deren Werte zum Bau neuer Knoten zu benutzen ginge auch,
wenn du eine oder beide Listen unbeschädigt lassen willst

fange ganz einfach an, erstmal einen Knoten neu zu erstellen mit dem Wert eines anderen,
dann zwei und drei manuell und diese manuell untereinander verknüpfen,
vielleicht siehst du dann das System für die Schleife
 

Andy85

Mitglied
Danke für die Idee. Habe das jetzt probiert, sogar mehrmals...:(
Meine Methode sieht jetzt so aus:
Code:
	public static void union(Knoten listHead1, Knoten listHead2){
		while (listHead1.naechster != null){
			listHead1 = listHead1.naechster;
		}
		listHead1.naechster = listHead1;
		if (listHead1.naechster != null)
			listHead1.naechster = listHead2;
		
		while (listHead1 != null){
			System.out.print(listHead1.wert+" ");
			listHead1 = listHead1.naechster;
		}
		System.out.println();
	}

Allerdings noch fehlerhaft, da ich bei den folgenden Listen:
Code:
Knoten list1 = new Knoten(3,
					   new Knoten(17,
					   new Knoten(8, null)));
		Knoten list2 = new Knoten(99,
					   new Knoten(11,
				       new Knoten(22, null)));
		drucke(list1);
		union(list1, list2);

Immer diese Ausgabe bekomme:
8, 99, 11, 22

Das mit dranhängen hat immerhin schon geklappt. Aber weiß du wo mein Fehler ist?
 
S

SlaterB

Gast
> Immer diese Ausgabe bekomme

in deinem Code-Ausschnitt steht das 'drucke' doch vor dem 'union',
was soll ich dann davon halten?
entweder ist die Ausgabe vor dem Verbinden oder du redest von einer ganz anderen Ausgabe,
poste lieber vollständigen Code, mehr als 50 Zeilen sind das doch bisher nicht

zu union:
in Zeil 2-4 durchläufst du die erste Liste,
so dass am Ende listHead1 das letzte Element von Liste1 ist, garantiert mit naechser == null,
gut

dann kommt die Zeile
> listHead1.naechster = listHead1;
welchen Sinn hat die in deinem Code? warum hast du sie geschrieben?
ich kann da nicht nur keinen Vorteil für die union erkennen,
das ist auch noch sehr gefährlich, jeder weitere Durchlauf der Liste führt zu einer Endlosschleife,
das letzte Element zeigt immer auf sich selber, hat nie 'naechser == null', ein Kreis

die nächse Zeile ist
> if (listHead1.naechster != null)

welchen Sinn hat diese denn? nach dem Code aus Zeile 2-4 war ja sichergestellt,
dass listHead1auf das letzte Element von Liste1 zeigt, garantiert mit naechser == null,
von daher wäre die Abfrage unnötig

außerdem schreibst du ja direkt davor
> listHead1.naechster = listHead1;
also ist die Abfrage doppelt unnötig, listHead1.naechster ist garantiert nicht null sondern listHead1,
weil du es eine Zeile zuvor doch zugewiesen hast! ;)

wenn du solch konfusen Code postest, dann kann ich kaum helfen
 

Andy85

Mitglied
Sry für den Unfug. Ich sitze schon zu lange an Listen, muss einiges noch mal von vorne durchgehen. Einfach beliebigen Code ausprobieren bringt nix. Morgen poste ich nochmal den ganzen Code...vielleicht komme ich noch in der Nacht auf eine richtige Lösung :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
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
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
N Listen Java Basics - Anfänger-Themen 5
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben