root/week1oplossing/KeyValueLijst.cpp

User picture

Author: machiel.sleeuwaert

Revision: 13 («Previous)

(Oct 08 15:33 2008 UTC) Over 3 years ago


  

 
Show/hide line numbers
#include "KeyValueLijst.h"

KeyValueLijst::KeyValueLijst():m_AantalElementen(0), m_Capaciteit(BASE_SIZE)
{
	m_KeyValueArrPtr = new KeyValuePaar[BASE_SIZE];
}

KeyValueLijst::~KeyValueLijst()
{
	delete[] m_KeyValueArrPtr;
}

void KeyValueLijst::insert(KeyValuePaar value)
{
	if(m_AantalElementen>=m_Capaciteit)
	{
		vergrootArray();
	}
	
	m_KeyValueArrPtr[m_AantalElementen] = value;
	m_AantalElementen++;
}

tstring KeyValueLijst::find(tstring key)
{
	for(int i=0;i<m_AantalElementen;++i)
	{
		if(key==m_KeyValueArrPtr[i].getKey())
			return m_KeyValueArrPtr[i].getVal();
	}
	return _T("NOT FOUND");
}

void KeyValueLijst::change(tstring key, tstring newvalue)
{
	for(int i=0;i<m_AantalElementen;++i)
	{
		if(key==m_KeyValueArrPtr[i].getKey())
		{
			m_KeyValueArrPtr[i].setVal(newvalue);
		}
	}
}

void KeyValueLijst::erase(tstring key)
{
	for(int i=0;i<m_AantalElementen;++i)
	{
		if(key==m_KeyValueArrPtr[i].getKey())
		{
			m_KeyValueArrPtr[i].setKey(_T(""));
			m_KeyValueArrPtr[i].setVal(_T(""));
		}
	}
}

void KeyValueLijst::vergrootArray()
{
	m_Capaciteit *= 2;

	KeyValuePaar* tempArrPtr = new KeyValuePaar[m_Capaciteit];

	for(int i=0;i<m_AantalElementen;++i)
	{
		tempArrPtr[i] = m_KeyValueArrPtr[i];
	}

	delete[] m_KeyValueArrPtr;

	m_KeyValueArrPtr = tempArrPtr;
}