Files
School/Anul 1/Semestrul 2/Data structures/Lab 4/MapIterator.cpp
T
2024-08-31 12:07:21 +03:00

56 lines
921 B
C++

#include "Map.h"
#include "MapIterator.h"
#include <exception>
using namespace std;
MapIterator::MapIterator(const Map& d) : map(d)
{
//O(1)
this->_current=0;
while (this->_current<this->map._capacity && this->map._elements[this->_current]==NULL_TELEM)
{
this->_current++;
}
this->_first=this->_current;
}
void MapIterator::first() {
//O(1)
this->_current=this->_first;
}
void MapIterator::next() {
//O(1)
if(this->valid()){
this->_current++;
while (this->_current<this->map._capacity && this->map._elements[this->_current]==NULL_TELEM)
{
this->_current++;
}
}
else
throw exception();
}
TElem MapIterator::getCurrent(){
//O(1)
if(this->valid())
return this->map._elements[this->_current];
throw exception();
}
bool MapIterator::valid() const {
//O(1)
if(this->_current<this->map._capacity && this->map._elements[this->_current]!=NULL_TELEM)
return true;
return false;
}