import java.util.function.Predicate;

/**
 * Tiefen- und Breitensuche
 * 
 * @author Rainer Helfrich
 * @version November 2020
 */
public class Baumalgorithmen2 extends Baumalgorithmen
{
    /**
     * Erzeugt ein neues Algorithmen-Objekt
     * @param wurzel Die Wurzel des Baums, der verarbeitet werden soll
     */
    public Baumalgorithmen2(Binaerbaum wurzel)
    {
        super(wurzel);
    }

    /**
     * Sucht mit der Breitensuche den ersten Knoten, der das Prädikat erfüllt
     * @param p Das Prädikat, das erfüllt werden soll.
     * @return Der Wert, der das Prädikat erfüllt
     */
    public Integer breitensuche(Predicate<Integer> p)
    {
        //# TODO: Implementieren Sie die Breitensuche wie beschrieben
        return null;
    }

    /**
     * Sucht mit der Breitensuche den ersten Knoten, der das Prädikat erfüllt
     * @param p Das Prädikat, das erfüllt werden soll.
     * @return Der Wert, der das Prädikat erfüllt
     */
    public Integer tiefensuche(Predicate<Integer> p)
    {
        //# TODO: Implementieren Sie die Tiefensuche wie beschrieben
        return null;
    }
}