# Zeiger prüfen - linkedlist



## MariusW (23. Apr 2008)

Hallo Leute,

ich muss in meiner doppelt verketeten liste alle zeiger überprüfen und ich hab keine idee wie man das richtig umsetzt.

Zeiger-Vortschaltungen realisiere ich wie folgt:


```
Element wRun=first;
for(int i=0;i<=size-1;i++) wRun=wRun.next;
```

und umgekehrt mit wRun.prev

Aber wie überprüfe ich ob der zeiger richtig ist?

Meine liste ist wie folgt aufgebaut:


```
public class Element<E>{
	
	E e;

	Element next;
	Element prev;

	Element(E e){
			this.e = e;
			next = null;
	}
	
}
```


Danke für eure Hilfe,

Marius


----------



## SlaterB (23. Apr 2008)

bevor man etwas prüfen kann, muss man erst festlegen, was als richtig und falsch gilt,

wenn du 10 Elemente hast, aber nur die ersten drei untereinander verlinkt sind,
dann ist das eine korrekte Liste mit 3 Elementen,
die Liste an sich kann nix dafür, wenn andere nicht eingefügt sind,

aber du kannst z.B. prüfen ob das Vorgänger-Element jedes Elementes X, falls nicht null, selber wieder X als Nachfolger hat


----------



## Guest (23. Apr 2008)

SlaterB hat gesagt.:
			
		

> bevor man etwas prüfen kann, muss man erst festlegen, was als richtig und falsch gilt,
> 
> wenn du 10 Elemente hast, aber nur die ersten drei untereinander verlinkt sind,
> dann ist das eine korrekte Liste mit 3 Elementen,
> ...




OK, so klappt es, danke..


----------



## freez (26. Apr 2008)

Ein wichtiger Test ist auch, ob du eine Schleife in der Liste hast. Das ist ja das schlimmste, was deiner Liste passieren kann. Da gibt es mehrere Möglichkeiten dies zu testen.


----------



## freez (26. Apr 2008)

> prüfen ob das Vorgänger-Element jedes Elementes X, falls nicht null, selber wieder X als Nachfolger hat



Hm, dieser test müsste doch dann in beiden Richtungen erfolgen. Sonst läuft die Liste in einer Richtung wo anders lang (quasi ein Abzweig davon). 

Wobei dies natürlich auch gewollt sein kann und somit dieser Test eh kein richtiges Prüfergebnis liefern kann.


----------



## SlaterB (26. Apr 2008)

>  du kannst ----> z.B. <---- prüfen


----------

