Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
28.06.2014
Размер:
1.32 Кб
Скачать
//---------------------------------------------------------------------------

#ifndef classH
#define classH
#include <iostream.h>
//---------------------------------------------------------------------------

template <class TYPE> class BiList {
	public:	class iterator;
	private:
	class BiListItem {
		private:
			TYPE data;
			BiListItem *next;
			BiListItem *pred;
			BiListItem();
			friend class BiList;
			friend class iterator;
	};
	class BiListError{
		public:
			virtual void Message() {cout << "Memory error!"};
	};
	public:	class iterator{
		private:
			BiListItem* data;
			BiListItem** parent;
		public:
			friend class BiList;
			iterator& operator ++(int);
			iterator& operator --(int);
			bool     operator ==(const iterator& c) const {return (*this).data == c.data;};
			bool    operator !=(const iterator& c) const {return (*this).data != c.data;};
			TYPE& operator *() {return (*(*this).data).data;};
			iterator& remove();
			iterator& insert(TYPE);
	};
	private: BiListItem *pbegin;
				friend class iterator;

	public:
		BiList() {pbegin = NULL; cout <<"Create\n";}
		bool push_back(TYPE);
		bool push_front(TYPE);
		iterator& begin();
		iterator& end();
		bool empty(){ return pbegin == NULL;}
	 	void clear();
		int size();
};



#endif
Соседние файлы в папке laba13