Вот безитераторный шаблон для однонаправленного списка. Написал вставку и удаление, остальное лень как-то.. сам допишешь?
| Код | template<class T> class LIST { private: data_type *first; data_type *last; public: struct data_type { T data; data_type *next; data_type(T dat_, data_type_ *nxt_): data(dat_), next(nxt_) {;} }; LIST(): first(0), last(0) {;} inline data_type *first() const {return first;} inline data_type *last() const {return last;} void push_back(T dat_) { if (last) last->next = new data_type(dat_, NULL); else { first = new data_type(dat_, NULL); last = first; } } void insert(data_type *ptr, T _dat) { data_type *elem = new data_type(_dat,ptr->next); ptr->next = elem; } void delete(data_type *ptr) { data_type *cur; for(cur = first; cur != 0; cur = cur->next) { if (cur->next == ptr) break; } cur->next = ptr->next; delete ptr; } };
|
|