hallo, ich habe folgende aufgabe versucht zu lösen:
Betrachten sie eine nicht gewordnete, lineare Liste, deren elemente Instanzen der Klasse Element sind.
Schreiben Sie je eine rekursive und nicht-rekursive methode, die die reihenfolge der elemente innerhalb einer liste umkehrt.
also die klasse element sieht so aus:
eine klasse Liste habe ich dann dazu so definiert:
sie entählt also nur ein attribut kopf, welches auf das 1. element der liste zeigt. das letzte element der liste zeigt auf null.
nun: ich habe schon mal versucht die rekursive methode in einer klasse Reverse zu implementieren:
aber wie immer kam ich nur bis zum trivialen fall, dass der kopf auf null zeigt, also was passiert, wenn die liste leer ist. zu den anderen fällen hatte ich zwar ideen, aber an der umsetzung hats gescheitert. zum beispiel wäre die aufgabe schnell gelöst, wenn ich zusätzlich noch ein attribut vorgaenger hätte, das auf das vorherige element zeigt. aber das habe ich ja hier nicht.
als letztes hatte ich mir überlegt, dass ich mit kopf.weiter die liste so lange durchlaufe bis ich auf das letzte element stoße (also das element, das auf null zeigt). das wird dann das erste element der neuen liste und danach entferne ich das element aus der usprungsliste, sodass das usprünglich vorletzte element, das letzte element wird. usw.
aber nachher fand ich diese idee auch zu kompliziert und...na ja....irgendwann kam ich an einen punkt wo ich fast aufgehört hab. deshalb wäre es echt super, wenn mir jmd. unter die arme greifen würde.
vielen dank schonmal im voraus...
lg
Betrachten sie eine nicht gewordnete, lineare Liste, deren elemente Instanzen der Klasse Element sind.
Schreiben Sie je eine rekursive und nicht-rekursive methode, die die reihenfolge der elemente innerhalb einer liste umkehrt.
also die klasse element sieht so aus:
Java:
public class Element
{
int wert;
Element weiter;
public Element(int i)
{
wert = i;
weiter = null;
}
}
eine klasse Liste habe ich dann dazu so definiert:
Java:
public class Liste
{
Element kopf;
}
sie entählt also nur ein attribut kopf, welches auf das 1. element der liste zeigt. das letzte element der liste zeigt auf null.
nun: ich habe schon mal versucht die rekursive methode in einer klasse Reverse zu implementieren:
Java:
ublic class Reverse
{
public List reverse()
{
return new Liste (reverse(kopf));
}
private static Liste reverse(Element a)
{
if(a == null)
return null;
}
aber wie immer kam ich nur bis zum trivialen fall, dass der kopf auf null zeigt, also was passiert, wenn die liste leer ist. zu den anderen fällen hatte ich zwar ideen, aber an der umsetzung hats gescheitert. zum beispiel wäre die aufgabe schnell gelöst, wenn ich zusätzlich noch ein attribut vorgaenger hätte, das auf das vorherige element zeigt. aber das habe ich ja hier nicht.
als letztes hatte ich mir überlegt, dass ich mit kopf.weiter die liste so lange durchlaufe bis ich auf das letzte element stoße (also das element, das auf null zeigt). das wird dann das erste element der neuen liste und danach entferne ich das element aus der usprungsliste, sodass das usprünglich vorletzte element, das letzte element wird. usw.
aber nachher fand ich diese idee auch zu kompliziert und...na ja....irgendwann kam ich an einen punkt wo ich fast aufgehört hab. deshalb wäre es echt super, wenn mir jmd. unter die arme greifen würde.
vielen dank schonmal im voraus...
lg