Zum Inhalt springen

Algorithmen + Datenstrukturen


biene82

Empfohlene Beiträge

Hallo allerseits!

ich wurde mit der folgenden aufgabe beauftragt und könnte hierbei ein bißchen hilfe gebrauchen, da mir irgendwie der ansatz fehlt. für jede hilfe wäre ich sehr dankbar!!! :-))

aufgabe: implementieren sie eine routine "exchange" für eine verkettete liste, die die knoten, auf die die zeiger t und u zeigen, miteinander vertauscht.

da ich neu in diesem bereich bin wäre ich für sämtliche hinweise, tipps oder lösungsansätze echt dankbar!!

grußli

biene

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einfach oder doppelt verkettet?

Im Prinzip hast Du also nur 2 Zeiger. Die zeigen auf Knoten, die jeweils einen Zeiger auf den nächsten Knoten haben.

Du mußt die Zeiger "umbiegen": Knoten B zeigt auf C und Knoten E zeigt auf F. B und E sollen getauscht werden. D. h. Knoten B muß auf F und Knoten E auf C zeigen.


A -> B -> C -> D -> E -> F


// wird zu


       |-------------|

A -> B |-> C -> D -> E |-> F

     |-----------------|

Das ist dann aber erst die Hälfte. Denn jetzt kommen noch Knoten A und D ins Spiel. A zeigt auf B und D auf E. Um die Knoten B und E zu tauschen, muß A auf E und D auf B zeigen. Wenn Du das geschafft hast und einfach den Zeigern folgst, erhältst Du

A -> E -> C -> D -> B -> F

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Newlukai!

wow, das war wirklich eine schnelle antwort! :-)

so in etwa hatte ich mir das auch schon aufgemalt. es handelt sich übrigens um eine einfach verkettete liste.

kann ich das denn in nur einem programm schreiben? also in der main funktion? irgendwie blick ich da noch nicht so ganz durch :-) (sorry, bin newbie)

gruss

biene

Link zu diesem Kommentar
Auf anderen Seiten teilen

wow, das war wirklich eine schnelle antwort! :-)

np

es handelt sich übrigens um eine einfach verkettete liste.

Dann wird's etwas schwieriger, da Du dann vor dem Tauschen erst einmal durch die Liste "latschen" mußt, um die Knoten vor den zu tauschenden Knoten zu finden.

kann ich das denn in nur einem programm schreiben? also in der main funktion?

:confused:

Ach so. Du meinst, ob das in der main reicht?!? Naja. Wenn es nur eine Übung ist, sicher.

Eleganter ist natürlich eine Klasse Liste, die mehrere Knoten hat. Liste bietet dann noch eine Methode exchange(KnotenA, KnotenB) an, die dann das gewünschte fabriziert.

Streng genommen ist sogar Liste unnötig. Du benötigst ja eigentlich nur den Anfang der Liste.

Aber das sind alles listen-implementierungs-spezifische Geschichten. :hells:

irgendwie blick ich da noch nicht so ganz durch :-) (sorry, bin newbie)

Das waren wir alle mal. Es gibt keine doofen Fragen. Nur doofe Antworten :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

:-)

okay, wie ich die zuweisung der werte, also der zeiger hinbekomme, das sollte ich irgendwie schaffen. aber wie bzw. mit welchem c-befehl kann ich die liste durchlaufen?

das programm soll so ablaufen, dass der anwender 5 integer werte eingeben kann und anschließend auswählt, welche der werte "t" bzw. "u" sein sollen. dann soll das "vertauschen" erfolgen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...