Theoretische Übung 1 - rotateTriples

bagwell
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 109
Registriert: 15. Nov 2010 09:18

Theoretische Übung 1 - rotateTriples

Beitrag von bagwell »

Hallo zusammen,

ich schäme mich ja schon fast das zu sagen, aber ich hab ein Problem mit rotateTriples in der theoretischen Übung 1 (die andern beiden Methoden waren kein Problem).

Hier meine Vorgehensweise:
1. Pointer auf das erste Element im Triple "sichern" (sprich: neuen Pointer anlegen [temp = p])
2. Pointer auf das dritte Element schieben (p=p.next.next)
3. Pointer auf das erste Element im nächsten Triple "sichern" (temp2 = p.next [p zeigt ja jetzt auf das 3. Element])
4. Drittes Element auf das Erste biegen (p.next = temp)
5. Das zweite Element auf das Erste im nächsten Triple biegen (p.next.next.next = temp2)
6. Pointer auf nächstes Triple schieben (p = p.next.next.next)
7. Wiederhole 1 bis 6 bis zur Abbruchbedingung

Als Ausgabe bekomm ich aber immer "a->b->d->e->g" statt "c->a->b->f->d->e->g".
Habe auch schon andere Reihenfolgen der "Umbiegung" nach dem ähnlichen Prinzip ausprobiert, immer mit dem selben Ergebnis.

Das heißt ich schaff es nicht das dritte Element im Triple auf das erste zu "biegen". Kann mir jemand weiterhelfen?

sab
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 28. Okt 2011 08:42

Re: Theoretische Übung 1 - rotateTriples

Beitrag von sab »

Hallo bagwell,

ersteinmal ist das kein Grund sich zu schämen - ich habe auch eine Weile gebraucht.
Es ist nicht einfach, dir eine Antwort zu geben, ohne zu viel von der Lösung zu verraten ;)

Aber in deinem Vorgehen findet sich ein Fehler:
In Punkt 2. geht dir der Pointer auf das zweite Element verloren.
Wenn du im ersten Schritt einen Pointer auf p setzt und p.next dann p.next.next wird, dann zeigt nichts mehr auf p.next -- temp.next entspricht dann auch dem dritten Element, weil es ja auf das erste zeigt (ich hoffe, das ist nicht allzu verworren).

Vielleicht hilft dir das schon weiter?

Viele Grüße,
sab

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Theoretische Übung 1 - rotateTriples

Beitrag von JannikV »

Im übrigen hast du noch nichts vom first erwähnt. Der muss natürlich auch noch umgebogen werden, damit der Anfang stimmt. Mein Tipp für die iterative Variante: Das erste Tripel gesondert behandeln um first richtig zu setzen. Alle anderen kannst du dann in einer Schleife erledigen.

VG

bagwell
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 109
Registriert: 15. Nov 2010 09:18

Re: Theoretische Übung 1 - rotateTriples

Beitrag von bagwell »

:roll: stimmt, first hatte ich total vergessen umzubiegen, kein Wunder dass das nicht funktioniert hat.
Jetzt hab ichs hingekriegt (musste allerdings noch einen weiteren Hilfspointer anlegen).

Danke!

Cupido
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 18. Apr 2012 16:31

Re: Theoretische Übung 1 - rotateTriples

Beitrag von Cupido »

Hello,

meine Methode rotateTriple() lässt ein Triple zwar schon richtig rotieren, aber auch nur weil ich beim umbiegen first = Element3 benutze. Dabei geht das erste Triple sobald die Methode aufs nächste Triple zugreift verloren und das erste Element des nächsten Triples ist nun first. Mit einem neuen Pointer auf first habs ichs schon versucht und funktioniert leider auch nicht. Am End hab ich nur einen Gedankenfehler, der mir mit einem kleinen Schubser in die richtige Richtung evtl. genommen werden kann. Über jeden Tipp bin ich daher dankbar.

Viele Grüße
:)
"Ich habe keine Macken, das sind Special Effects!"

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Theoretische Übung 1 - rotateTriples

Beitrag von JannikV »

Hab ja schon geschrieben: Behandel das erste Tripel gesondert, weil dort eben first umgebogen werden muss. Alle anderen Triples kannst du dann in einer Schleife bearbeiten. Dabei brauchst du natürlich noch ne Hilfsvariable die das letzte Element vom letzten Tripel speichert um das noch korrekt verbinden zu können.

VG

Cupido
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 18. Apr 2012 16:31

Re: Theoretische Übung 1 - rotateTriples

Beitrag von Cupido »

Jetzt hats geschnackelt!
Liste ist nun so wie sie sein soll!!

Vielen Dank :D

Grüße
"Ich habe keine Macken, das sind Special Effects!"

Antworten

Zurück zu „Archiv“