#ifndef ELEMENT_H_INCLUDED
#define ELEMENT_H_INCLUDED

#include <iostream>

//generikus tomb amiben egy l�ncolt list�ban
//t�rolva vannak az adatok
template<class T>

//Element class, ebben van t�rolva az Adatok
class Element {

public:
    //A k�vetkez� elemre mutat� pointer
    Element* next;

    //Az tartalmazott Adatok tagnak az �rt�ke
    //az az a PrivatAdat �s a PublikusAdat
    T value;

    //Konstruktor, a k�vetkez� elemet automatikusan
    //NULL-ra �ll�tja
    Element<T>(const T& val) : value(val) {next = NULL;};

    //F�ggv�ny, ami visszaadja a k�vetkez�
    //elemre mutat� pointert
    //next pointerrel return-�l
    Element* getNext() { return next; }

    //F�ggv�ny ami visszaadja a t�rolt adat value-j�t
    //(l�sd feljebb)
    //value-val return-�l
    T getValue() const { return value; }

    //F�ggv�ny, ami a next pointert tudja
    //be�ll�tani a megadott pointerre
    void setNext(Element* ne) { next=ne; }

    //F�ggv�ny ami az adott tag �rt�k�t tudja �ll�tani
    void setValue(const T& val) { value=val; }

    //Destruktor
    ~Element(){}
};

#endif // ELEMENT_H_INCLUDED