www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 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
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmen und Datenstrukturenverkettete Listen
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Algorithmen und Datenstrukturen" - verkettete Listen
verkettete Listen < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

verkettete Listen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:19 So 23.04.2006
Autor: nathenatiker

Hallo,

komme bei folgendem Problem nicht weiter:
ich probiere gerade eine einfach verkettete Liste(gegeben durch eine Referenz auf das erste Element) umzudrehen. Dies soll aber nur durch manipulieren der Referenzen passieren(dass heisst ohne Benutzung von Methoden, insbesondere keine Kopien).
Rein theoretisch brauch ich doch nur die länge der liste
und nehme das erste Element und hänge es ans ende,
dann nehme ich das neue erste und setzte es vor das letzte element usw.

Bin mir leider nicht sicher ob das ein guter weg ist,
bzw ob das verschieben durch ändern der Referenzen so überhaupt möglich ist.
wäre froh wenn mir jemand anregungen geben könnte.
MFG

Nathenatiker

        
Bezug
verkettete Listen: Antwort
Status: (Antwort) fertig Status 
Datum: 18:21 So 23.04.2006
Autor: Frank05


> Hallo,

Hallo,

> komme bei folgendem Problem nicht weiter:
>  ich probiere gerade eine einfach verkettete Liste(gegeben
> durch eine Referenz auf das erste Element) umzudrehen. Dies
> soll aber nur durch manipulieren der Referenzen
> passieren(dass heisst ohne Benutzung von Methoden,
> insbesondere keine Kopien).
> Rein theoretisch brauch ich doch nur die länge der liste
>   und nehme das erste Element und hänge es ans ende,
>  dann nehme ich das neue erste und setzte es vor das letzte
> element usw.

  
Was "möglich" betrifft, so musst du dir immer überlegen, ob nach deiner jeweiligen Änderung noch immer eine ordentliche verkettete Liste vorliegt. Du musst also jedes betroffene Element der Liste genau betrachten und prüfen, ob sein Zeiger auf das nächste Element stimmt und ob der Zeiger auf das betroffene Element stimmt. Gerade wenn es mehr Zeiger werden (z.B. bei doppelt verketteten Listen) verrutscht gern mal der ein oder andere Zeiger wenn man nicht aufpasst.

Dein Ansatz ist zwar noch etwas unpräzise formuliert, ist aber durchaus machbar. Die Schwierigkeit liegt hier lediglich im Detail: Wenn du sagst du setzt es vor das letzte Element, wie machst du das dann genau?

Vielleicht ist es einfacher, wenn du dir das Ergebnis als eine neue Liste vorstellst. Also jedesmal wenn du ein Element der alten Liste an der 'richtigen' Stelle einfügst kannst du das auch betrachten als 'entferne das Element aus der alten Liste und füge es in die neue Liste ein'. Somit widerspricht das nicht deiner Anforderung, dass keine Kopie gemacht werden darf, da ja nur Zeiger umgebogen werden.

Wie du schon richtig erkannt hast genügt es immer wieder das erste Element der Liste zu betrachten und an die richtige Stelle zu setzen. Wenn du nun eine zweite Liste konstruierst, anstatt an das Ende der ersten Liste anzuhängen, dann benötigst du auch die Information über die Länge der Liste nicht.

Du musst dir jetzt nur noch überlegen, wo in der neuen Liste das jeweilige Element eingefügt werden muss (was nicht weiter schwer ist). Wenn du die Originalliste dermaßen abgebaut hast bleibt nur noch die ursprüngliche Referenz auf das erste Element der neuen Liste zu setzen.

Ich weiß nicht, was du damit meinst, dass du keine Methoden benutzen darfst. Wahrscheinlich ist gemeint, dass du keine API Aufrufe o.ä. verwenden sollst. Aber das ist ja auch nicht nötig. Eine Kopie der Liste ebenfalls nicht. Der Speicherbedarf liegt bei n+c wobei n die Element der Liste sind und c der Platz für eine (konstante) Anzahl von Hilfsvariablen - abhängig von deiner genauen Implementierung. Die Laufzeit ist genauso groß, wenn du nicht vorher die Länge der Liste berechnest (sonst hättest du 2*n).

> Bin mir leider nicht sicher ob das ein guter weg ist,
>  bzw ob das verschieben durch ändern der Referenzen so
> überhaupt möglich ist.

Bis auf die unnötige Berechnung der Listenlänge ist deine Idee soweit in Ordnung. Versuch dich einfach mal an einer Implementierung, dann wirst du schnell erkennen, wo du dir das Ganze noch nicht weit genug klar gemacht hast.

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


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]