Скачиваний:
9
Добавлен:
01.05.2014
Размер:
1.17 Кб
Скачать
// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_EXTGRAPHITERATOR_472F6645029F_INCLUDED
#define _INC_EXTGRAPHITERATOR_472F6645029F_INCLUDED

#include "Iterator.h"
#include "Graph.h"

//##ModelId=472F6645029F
template<class T>
class ExtGraphIterator: virtual public Iterator<T>
{
public:
	T next() {
		return i->next();
	}

	T previous() {
		return i->previous();
	}
	
	bool hasNext() {
		return i->hasNext();
	}

	bool hasPrevious() {
		return i->hasPrevious();
	}

	T first() {
		return i->first();
	}

	T last() {
		return i->last();
	}

	T current() {
		return i->current();
	}

	bool endNext() {
		return i->endNext();
	}

	bool endPrevious() {
		return i->endPrevious();
	}

	~ExtGraphIterator() {
		delete i;	
	}

	ExtGraphIterator(Graph<T>* gr) {
		i = NULL;
		attach(gr);
	}

	void attach(Graph<T>* gr) {
		g = gr;
		if (i) delete i; // delete old iterator 
		i = g->iterator();
	}

private:
	Graph<T>*g;
	Iterator<T>*i; //graph iterator;

};

#endif /* _INC_EXTGRAPHITERATOR_472F6645029F_INCLUDED */
Соседние файлы в папке LAB1_CONSOLE - final