#pragma once #include template class List { public: class Element { public: T t_value; Element * next; Element * previous; Element(T value); void detach(); void attachBefore(Element *next); }; List(); void insert(int index); Element & getElement(int index); private: Element * guard; int rozmiar; }; template inline List::Element::Element(T value) { t_value = value; } template inline void List::Element::detach() { this->next->previous = this->previous; this->previous->next = this->next; } template inline void List::Element::attachBefore(Element * next) { Element *prev; prev = next->previous; this->next = next; this->previous = prev; next->previous = this; prev->next = this; } template inline List::List() { this->rozmiar = 0; this->guard = new Element(null); this->guard->next = this->guard; this->guard->previous = this->guard; } template inline void List::insert(int index) { } template inline Element List::getElement(int index) { Element * element; element = this->guard->next; return element; }