Double Linked List
-
Hallo,
ich hab eine Frage zu diesem Thema in C++, und zwar wie realisiert man das hier, in Java gibt es da ja einen extra Container zu. Ich hab jetzt schon einmal danach gegoogelt, aber nichts richtiges gefunden, kann mir jemand nen Beispiel geben oder sagen, wie man das realisiert?
Danke
-
Was sillst du denn genau machen? Es gibt die sogenannte STL (Standard Template Libary), welche dir solche Behälter zur verfügung stellt.
-
Hallo, du kannst dir das natürlich selbst programmiern oder du nutzt eine Liste aus der STL. Ich kann dir aber im Moment nicht sagen ob es da ein gibt und wenn ja, wie diese heißt.
struct data { public: data(); data(const data& rhs) ; // copy me ~data(); private: /*....*/ }; sturct dllist { public: dllist(dllist* prev, data Data) : prev_(prev), data_(Data), next_(0) {} data& data() const {return data_; } dllist * prev() const {return prev_; } dllist * next() const {return next_; } void next(dllist& pNext) {next_ = pNext; } private: dllist * prev_; dllist * next_; data data_; };
Kann sein, dass das jetzt nicht das Gelbe vom Ei ist - aber es sollte so theoretisch funktionieren.
Evtl. musste für deine Datenklasse auch noch den Kopierkonstruktor überladen.
-
in der STL gibts das Containertemplate "list", das hauptsächlich die Methoden bietet, die man von einer double linked list allgemein erwartet (inklusive der Zugriffzeiten etc.)
lies dir dazu das C++-Buch deiner Wahl durch (da sollten die Container zumindest oberflächlich mal behandelt werden, sonst schmeiß es weg...)
weitere detailliertere Infos zur STL gibts hier: http://www.sgi.com/tech/stl/
(soweit ich weiß kommt aus deren Feder die STL-Implementierung die bei der GCC dabei ist)