//---------------------------------------------------------------------------

#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
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif