//---------------------------------------------------------------------------
#ifndef ElementH
#define ElementH
//Ein Element einer verketteten Liste
class OutOfRange {};
template class TElement
{
private:
T Data; //beinhaltet die Daten
TElement * Next; //zeigt auf das naechste Element
public:
TElement (T d, TElement * n);
//Konstruktor initialisiert Daten und Zeiger aufs naechste El.
T & GetData(int Pos);
//zum Setzen und bekommen von Daten an einer Position
TElement * GetNext();
void SetNext(TElement * n);
};
template
TElement::TElement (T d, TElement * n)
{
Next = n;
Data = d;
}
template
T & TElement::GetData(int Pos=0)
{
if (Pos == 0)
return (Data);
Pos--;
if (!Next)
throw OutOfRange();
return Next -> GetData(Pos);
}
template
TElement * TElement::GetNext()
{
return Next;
}
template
void TElement::SetNext (TElement * n)
{
Next = n;
}
#endif