004
09.08.2005, 09:18 Uhr
virtual
Sexiest Bit alive (Operator)
|
Zitat von FloSoft: |
du meinst, den "hintern" kann ich mir sparen?
|
Ja, mehr noch: Deine Implementierung ist recht problematisch:
C++: |
template<typename T> class liste { public: class item { public: item *next, *prev; T data; }; ... private:
item head; item tail; ... };
|
Bedeutet, daß Deine Liste mindestens zwei Ts enthält - eines steht eben in head, ein anderes eben in tail. Wie erzeugst Du eine Leere Liste? - Vermutlich dadurch, daß Du irgendwie die Ts in head und tail ignorierst... Aber die sind ja nun mal trotzdem da! IMHO richtiger wäre:
C++: |
template<typename T> class liste { private: // Niemanden geht eigentlich an, wie item aussieht. Daher private class item { public: item *next, *prev; T data; }; ... private:
item* head; // nur ein Zeiger ...
|
Du wirst so oder so nicht darum herum kommen, head bei einfüge/entfernen Operationen mit zu pflegen. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |