Konkatenation von zwei Listen

paco89

Bekanntes Mitglied
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:

Java:
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
 

Anhänge

  • Aufgabe4.png
    Aufgabe4.png
    72,6 KB · Aufrufe: 29
  • Aufgabe4a.png
    Aufgabe4a.png
    62,8 KB · Aufrufe: 31

paco89

Bekanntes Mitglied
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...
 
F

Firephoenix

Gast
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

Bekanntes Mitglied
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

Bekanntes Mitglied
also als code habe ich folgendes hingeschrieben:

Java:
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....
 
Zuletzt bearbeitet:
F

Firephoenix

Gast
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ß
 

Neue Themen


Oben