#pragma once
#include "CGraph.h"
#include <list>

template <class T>
class GrIterator
{
	int index;
	CGraph<T>& gr;

	std::list<int> l;

public:

	GrIterator(CGraph<T>& _gr):gr(_gr)
	{
		index=0;
		l=_gr.getElemsList();
	}

	void goNext()
	{index++;}

	void goPred()
	{index--;}

	bool isEnd()
	{if (index==(gr.getCount())) 
	{return true;}
	 else
	{return false;}
	}

	bool isBegin()
	{if (index==0) {return true;}
	 else
	 {return false;}
	}

	T currentElement()
	{
		return gr.getElementByNom(index);
	}

	int currentIndex()
	{
		std::list<int>::iterator it;
		it=l.begin();

		for (int i=0;i<index;i++)
		{it++;
		}

		return *it;
	}
};
Соседние файлы в папке part31