www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Lineare Listen
Lineare Listen < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Lineare Listen: Knifflige Aufgabe
Status: (Frage) beantwortet Status 
Datum: 18:45 Fr 29.04.2005
Autor: Jaykop

Hallo,
ich hab hier folgendes Problem:
Gegeben ist eine lineare Liste mit folgenden Eigenschaften:
1.) das Ende der Liste zeigt auf null oder auf ein Element in der Liste selbst.
2.) die Anzahl der Elemente ist unbekannt
3.) die Elemente enthalten außer dem Nachfolger keine wieteren Informationen
4.) die Zeiger der Liste sind unveränderbar.

Jetzt soll ich einen Algorithmus angeben der zusätzlich Speicher verbraucht(wenn möglich Konstant viel) und mir sagt ob die Liste nun geschlossen ist oder bei null endet. Und als eingabe bekomm ich den Zeiger auf den Anfang.

Meine Lösung für die endende Liste ist folgende:
Man geht solange durch bis man auf null trifft.
Dazu benötigt man nur einen Zeiger der durchläuft.

Aber bei der geschlossenen liste, hab ich keine idee wie ich das mit den oben genannten einschränkungen anstellen soll.

Vieleicht habt ihr ja Ideen, Lösungsansätze oder sogar Lösungen.

Vielen Dank
Jaykop

        
Bezug
Lineare Listen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:27 Fr 29.04.2005
Autor: Lizard

Dazu gibt es einen relativ einfachen Ansatz, den sogenannten "Hase-Igel" Algorithmus. Man nimmt sich zwei Zeiger auf Listenelemente, der eine ist der Hase, der andere der Igel. Beide beginnen am Anfang der Liste loszulaufen, wobei der Igel ganz gemütlich ein Element nach dem anderen anschaut, der Hase dagegen doppelt so schnell ist und immer gleich zwei Elemente verarbeitet. Ist die Liste endend, so stößt der Hase vermutlich irgendwann auf Null und man ist fertig; ist sie es allerdings nicht, dann gelangen Hase und Igel irgendwann beide in den Zyklus, und man kann sich leicht überlegen, daß der Hase den Igel dann recht schnell eingeholt hat (Egal, wo der Hase hinkommt: Der Igel "ist schon da"). In diesem Fall kann man sicher davon ausgehen, daß die Liste zyklisch ist, und auch dann terminiert der Algorithmus. Als ich den Algorithmus damals kennengelernt habe, hab ich mich ziemlich gefreut, daß er so anschaulich ist (man kann sich zwar noch ein paar Gedanken zu Laufzeit und Terminierungsverhalten machen, aber schrecklich kompliziert ist das nicht). Falls du aber trotzdem noch Fragen haben solltest, gib einfach noch mal Bescheid.


Bezug
                
Bezug
Lineare Listen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:39 Fr 29.04.2005
Autor: Jaykop

Ich werd erstmal ein bischen damit rumprobieren, vieleicht erbgeben sich ja noch fragen. Dankeschön!

Gruß
Jaykop

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]