package liste;

/**
 * Klasse ListeRekursiv
 * 
 * @author Rainer Helfrich
 * @version Oktober 2020
 */
public class ListeRekursiv<T> extends Liste<T>
{
    //# TODO: Legen Sie einen Verweis auf das erste Element an

    /**
     * Erzeugt eine neue Liste
     */
    public ListeRekursiv()
    {
        //# TODO: Hier ist etwas zu tun
    }

    /**
     * Gibt die Anzahl der Elemente der Liste zurück
     */
    public int laenge()
    {
        //# TODO: Hier ist etwas zu tun
        return -1;
    }

    /**
     * Gibt den n-ten Wert (0-basierte Zählweise) der Liste zurück.
     * @param n Der Index des gewünschten Elements
     * @return Den n-ten Wert
     */
    public T getNtenWert(int n)
    {
        //# TODO: Hier ist etwas zu tun
        return null;
    }

    /**
     * Hängt einen neuen Wert hinten an die Liste an.
     * @param val Der anzuhängende Wert
     */
    public void anhaengen(T val)
    {
        //# TODO: Hier ist etwas zu tun
    }

    /**
     * Fügt einen neuen Wert an einer gewünschten Stelle in der Liste ein.
     * @param index Die Stelle, an der der neue Wert stehen soll (0 <= index <= laenge())
     * @param val Der einzufügende Wert
     */
    public void einfuegenBei(int index, T val)
    {
        //# TODO: Hier ist etwas zu tun
    }

    /**
     * Gibt die Listenelemente hintereinander auf der Konsole aus.
     */
    public void ausgeben()
    { 
        //# TODO: Hier ist etwas zu tun
    }

    /**
     * Gibt zurück, ob ein Wert sich in der Liste befindet
     * @param val Der zu suchende Wert
     * @return true, wenn der Wert enthalten ist; false sonst
     */
    public boolean enthaelt(T val)
    {
        //# TODO: Hier ist etwas zu tun
        return false;
    }

    /**
     * Entfernt das Element, das am gegebenen Index steht, aus der Liste.
     * @param index Die Stelle, von der der Wert entfernt werden soll.
     */
    public void entferneBei(int index)
    {
        //# TODO: Hier ist etwas zu tun
    }

    /**
     * Gibt zurück, ob die Liste leer ist.
     * @return true, wenn die Liste keine Elemente enthält; false sonst
     */
    public boolean istLeer()
    {
        //# TODO: Hier ist etwas zu tun
        return true;
    }
}