# Konkatenation von zwei Listen



## paco89 (27. Feb 2012)

hallo, ich habe wieder mal versucht eine programmieraufgabe zu lösen und bin an stelle hängengeblieben.

also die aufgabe habe ich als anhang hochgeladen. mein code dazu sieht folgendermaßen aus:


```
public Liste konkateniere (Liste ys)
{
	return new Liste(konkateniere(this.start, ys.start));
}

private static Liste konkateniere (Element a , Element b)
{
	if (a == null && b == null)
		return null;
}
```



das ist natürlich nicht alles. wie ihr seht hab ich nur den fall abgedeckt, dass die beiden listen leer sind. was aber wenn eine von den beiden nicht leer ist?

dazu ist mir nichts eingefallen....daher bitte ich um hilfe....


danke schon mal in voraus....



lg


----------



## ARadauer (27. Feb 2012)

paco89 hat gesagt.:


> dazu ist mir nichts eingefallen....daher bitte ich um hilfe....


ähmn... das next vom letzen der ersten auf das erste der zweiten... 

Nicht verstanden? Papier und Bleisift hilft...


----------



## paco89 (27. Feb 2012)

ah, okay...wie komme ich nochmal an das letzte element der erste liste mit rekursion? mit der schleife hätte ich kein problem, aber in der aufgabenstellung steht, dass ich keine schleife benutzen darf...


----------



## Firephoenix (27. Feb 2012)

Eine Rekursive Funktion besteht immer aus einem Anker (dem Trivialfall in der Regel) und einem nicht-basisfall.

Überleg dir mal was der Anker sein könnte, wie der nicht-basisfall aussieht und wie deine Methode vom Methodenkopf her aussehen soll.
Dann hast du schon 80% der Methode fertig, die letzten 20% kriegst du dann auch noch eingetippt.

Gruß


----------



## paco89 (27. Feb 2012)

mir fehlen die ideen...als basisfall könnte ich mir vorstellen, dass a== null ist, dann würde ich ein neues listenelement erzeugen und dieses neu erzeugte element würde dann auf das erste element der eingabeliste zeigen.
angenommen a != null, dann müsste ich doch die elemente der ursprungsliste auf die a zeigt, doch durchlaufen, bis ich auf das element stoße, dessen nachfolger null ist(das wäre dann das letzte element der ursprungsliste). seinen nachfolgerzeiger müste ich nur noch mit dem ersten element der eingebeliste verbinden. 


soweit so gut.....aber an der umsetzung scheitere ich...ich mach mal weiter....;(


----------



## paco89 (27. Feb 2012)

also als code habe ich folgendes hingeschrieben:


```
public Liste konkateniere(Liste ys)
{
	return new Liste (konkateniere (this.start, ys.start))
}

private static Element konkateniere(Element a , Element b)
{
	if(a==null && b == null)
		return null;
        if (a == null)
        {
	     return new Element (b.wert, konkateniere(a,b.nachfolger));
         }
	
		return new Element(a.wert, konkateniere(a.nachfolger, b));
		
}
```


das steht jetzt jedenfalls auf meinem zettel....


----------



## Firephoenix (28. Feb 2012)

Na dann teste doch einfach mal ob auch das herauskommt was du willst wenn du da zwei einfache Listen übergibst.
Falls nicht überleg dir warum nicht oder poste das genaue Problem - dann kann man besser helfen 

Gruß


----------



## paco89 (28. Feb 2012)

habs getestet. das klappt....


----------

