# Rekursive Ausgabe einer linkedList



## mix2k1 (25. Apr 2007)

Ich will/soll ein Methode schreiben, welche die Elemente einer LinkedList rekursiv ausgibt.
Hab leider keine Idee wie ich da anfangen soll. :?: 
Hat jemand ein paar Ansätze für mich?


```
public void printRekursiv(?????){
		if(meineListe.size()==1){
			//ausgabe des einen Elements
		}else{
			????
					printRekursiv(?????);
		}
```


----------



## SlaterB (25. Apr 2007)

```
if leer
  -
if 1
 Ausgabe des einen Elementes
else
  Ausgabe eines Elementes, dieses Element entfernen, 
  Rekursionsaufruf
```
ist aber ein rabiates Vorgehen 

so nun könntest du höchstens noch Einzelfragen haben 
wie 'wie gebe ich EIN Element aus (welches)'

da verweise ich auf die API, 
die solltest du mal gründlich lesen

http://java.sun.com/javase/6/docs/api/java/util/LinkedList.html

---------

> public void printRekursiv(?????){

falls du schon ein Problem damit hast, 
überhaupt einen ganz normalen Parameter zu übergeben (die Liste!),
dann empfehle ich zunächst zur Übung einfachere Operationen,
zum Beispiel die ganz normale iterative Ausgabe der Liste


----------



## WieselAc (25. Apr 2007)

```
public void printRekursiv(List l) {
      if(l.isEmpty()){
          return;
      }
      Object current = l.remove(0);
      System.out.println(current);
       printRekursiv(l);
    }
```


----------



## FelixB (25. Apr 2007)

Warum brauchst du Rekursion? Ne einfache Schleife tuts doch auch?


----------



## Saxony (25. Apr 2007)

Hiho,

wenn nach der rekursiven Ausgabe die Liste noch Elemente enthalten soll, kann man sich ne Variable zu Hilfe nehmen.


```
private int listLength = 0;

private void printList(List<String> l) {
		
    if(this.listIndex == l.size()) return;
    String cur = l.get(this.listIndex++);
    System.out.println(cur);
    this.printList(l);
    this.listIndex = 0;
}
```

bye Saxony


----------



## masta // thomas (25. Apr 2007)

Wenn du eine doppelt verkettete Liste _selbst_ (als Schulaufgabe o.ä.) programmiert hast, dann hilft dir vielleicht folgender halb-pseudo-code


```
if(erstesElement == null)
	return;
Element aktuellesElement = erstesElement;
do
{
	System.out.println(aktuellesEelement.getDaten());
}
while((aktuellesElement = aktuellesElement.getNächstesElement()) != null);
```


----------



## Saxony (25. Apr 2007)

Yep das wäre dann allerdings wieder ohne Rekursion und eigentlich auch die gängigere Variante als die über Rekursion.

bye Saxony


----------



## mix2k1 (25. Apr 2007)

Danke für die vielen Ansätze.
Ich soll, wie ich grad erfahren habe, wirklich eine LinkedList selbst implementieren. So mit insert, search, print und delete.
Da weiß ich jetzt gar nicht mehr weiter. :cry:


----------



## Saxony (25. Apr 2007)

Hiho,

yep is ja nix wildes. Selbst wenn diese doppelt verkettet sein soll.

Für die ganz Faulen unter euch:

Google CodeSearch



bye Saxony


----------

