implemetierung einer doppelt verketten liste



  • Shade Of Mine schrieb:

    Das Problem ist: wo zeigt der end iterator hin?

    In meinem jugendlichen Leichtsinn, sag ich jetzt einfach mal, der zeigt auf das Element, das als Nachfolger das Start-Element hat. Zumindest habe ich das in den paar Ringlisten, die ich mal gemacht, so gelöst. Allerdings waren die nicht STL-konform.

    Grüße Joe_M.



  • Der end-Iterator zeigt ja eben nicht auf das letzte Element in der STL, sondern dahinter. 😉
    Somit müsstest du ja auf das Element hinter dem verweisen das vor dem Start-Element ist. Also wieder auf das Start-Element...



  • Shade Of Mine schrieb:

    hustbaer schrieb:

    Hm. Wieso verwendet eigentlich kaum jmd. Ringlisten?

    Weil das mit der STL nicht ganz harmoniert. Das Problem ist: wo zeigt der end iterator hin?

    na auf das dummy-element, das den ring schließt. Es liegt damit gleichzeitig vor dem ersten Element und hinter dem letzten. du warst doch auf dem forum-treffen vor zwei Jahren???

    btw, mal in deine stl-implementierung reingeschaut? -- die meisten benutzen eine ringliste.



  • Ich habs!!!!!!!!!!!!!!!!!!!

    Alles klar verstanden

    Danke & Gruß niesel

    😃



  • drakon schrieb:

    hustbaer schrieb:

    Hm. Wieso verwendet eigentlich kaum jmd. Ringlisten?

    Mir ist das auf jeden Fall immer viel zu doof die ganzen Randbedingungen zu checken die sich bei "normalen" doppelt verketteten Listen ergeben, daher verwende ich eigentlich nur Ringlisten (wenn ich wirklich mal eine selbstgeschriebene Liste brauche).

    Vorne/hinten einfügen oder löschen geht ja noch, richtig lustig wird's dann wenn man ein beliebiges Elemtent entfernen möchte, oder an einer beliebigen Stelle etwas einfügen.

    Wie unterscheidet sich den das einfügen bzw. löschen bei Ringlisten von doppelt verketteten Listen?

    Dadurch dass man bei Ringlisten keine "ifs" braucht.



  • hustbaer schrieb:

    drakon schrieb:

    hustbaer schrieb:

    Hm. Wieso verwendet eigentlich kaum jmd. Ringlisten?

    Mir ist das auf jeden Fall immer viel zu doof die ganzen Randbedingungen zu checken die sich bei "normalen" doppelt verketteten Listen ergeben, daher verwende ich eigentlich nur Ringlisten (wenn ich wirklich mal eine selbstgeschriebene Liste brauche).

    Vorne/hinten einfügen oder löschen geht ja noch, richtig lustig wird's dann wenn man ein beliebiges Elemtent entfernen möchte, oder an einer beliebigen Stelle etwas einfügen.

    Wie unterscheidet sich den das einfügen bzw. löschen bei Ringlisten von doppelt verketteten Listen?

    Dadurch dass man bei Ringlisten keine "ifs" braucht.

    🙄 - Was meinst du damit?

    In eine Liste was einfügen geht ja einfach mit pusch_back () und löschen mit erase (iterator). Ok, beim löschen gibt es einen iterator, aber ich denke mal nicht, dass eine Ringliste ohne einen auskommt.



  • Vllt. solltest du (drakon) mal eine Liste Implementieren ... dann weißt du evtl. was er meint 😉



  • (D)Evil schrieb:

    Vllt. solltest du (drakon) mal eine Liste Implementieren ... dann weißt du evtl. was er meint 😉

    😃 - Da ist es noch nicht über den reinen Gedanken gekommen. 😉

    Ich habe es auf die Benutzung bezogen.



  • Vielleicht solltest du dir deine 🙄 sonstwohin tun.
    Klar rede ich hier von der Implementierung, in dem Thread geht es ja auch um die Implementierung. Was auch nicht schwer herauszufinden sein sollte. Der Thread-Titel "implemetierung einer doppelt verketten liste" hilft IMO ungemein.
    Ein oder 2 Postings lesen hilft auch sehr.



  • Um das mal klar zu stellen, ich habe mich immer auf diesen Post bezogen:

    hustbaer schrieb:

    Hm. Wieso verwendet eigentlich kaum jmd. Ringlisten?

    Mir ist das auf jeden Fall immer viel zu doof die ganzen Randbedingungen zu checken die sich bei "normalen" doppelt verketteten Listen ergeben, daher verwende ich eigentlich nur Ringlisten (wenn ich wirklich mal eine selbstgeschriebene Liste brauche).

    Vorne/hinten einfügen oder löschen geht ja noch, richtig lustig wird's dann wenn man ein beliebiges Elemtent entfernen möchte, oder an einer beliebigen Stelle etwas einfügen.

    Und da du von verwenden gesprochen hast, bin ich davon mit meiner Frage ausgegangen.



  • Hehe, ok.
    "Ringlisten verwenden" im Sinn von das Konzept Ringliste verwenden um eine Implementierung zu basteln.
    Sorry, war zugegebenermassen etwas unklar.



  • Ok. 🙂
    Was mit den if's gemeint ist, habe ich oben auch mal noch gesehen. Aber wenn ich das also richtig sehe, gibt es in der Verwendung keinen grossen Unterschied.


Anmelden zum Antworten