Class BinaryTree


  • public class BinaryTree
    extends java.lang.Object
    Balancierter binärer Suchbaums mit fester Knotenanzahl. Ermöglicht die effiziente Feststellung, ob ein Zeitstempel innerhalb der Zeitintervalle liegt, die in den Blättern des Knoten gespeichert sind.
    Das Hinzufügen oder entfernen Knoten ist nicht möglich.
    • Constructor Summary

      Constructors 
      Constructor Description
      BinaryTree​(java.util.List<de.bsvrz.sys.funclib.losb.util.Tuple<java.lang.Long,​java.lang.Long>> periods)
      Erzeugt einen binären Suchbaum.
    • Method Summary

      Modifier and Type Method Description
      boolean contains​(long timeStamp)
      Prüft, ob ein Zeitstempel in den gespeicherten Intervallen liegt.
      long getEndOfAllIntervalls()
      Liefert das Ende aller Zeitintervalle zurück.
      long getEndOfInterval​(int index)
      Liefert das Ende des Zeitintervalls index zurück.
      long getStartOfInterval​(int index)
      Liefert das Anfang des Zeitintervalls index zurück.
      boolean isEmpty()
      Zeigt ob Zeitintervalle im Baum gespeichert sind.
      int size()
      Anzahl der verwalteten Zeitintervalle.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BinaryTree

        public BinaryTree​(java.util.List<de.bsvrz.sys.funclib.losb.util.Tuple<java.lang.Long,​java.lang.Long>> periods)
        Erzeugt einen binären Suchbaum.
        Parameters:
        periods - Zeitintervalle. Liste wird nicht verändert.
    • Method Detail

      • getStartOfInterval

        public long getStartOfInterval​(int index)
        Liefert das Anfang des Zeitintervalls index zurück.
        Parameters:
        index - Index des Zeitintervalls
        Returns:
        Ende des Zeitintervalls oder -1, falls ein ungültiger Index verwendet wurde oder keine Zeitstempel verwaltet werden.
      • getEndOfInterval

        public long getEndOfInterval​(int index)
        Liefert das Ende des Zeitintervalls index zurück.
        Parameters:
        index - Index des Zeitintervalls
        Returns:
        Ende des Zeitintervalls oder -1, falls ein ungültiger Index verwendet wurde oder keine Zeitstempel verwaltet werden.
      • getEndOfAllIntervalls

        public long getEndOfAllIntervalls()
        Liefert das Ende aller Zeitintervalle zurück. Es wird der größten Zeitstempel zurückgeliefert, der vom Baum verwaltet wird.
        Returns:
        Ende aller Zeitintervalls oder -1, falls ein ungültiger Index verwendet wurde oder keine Zeitstempel verwaltet werden.
      • size

        public int size()
        Anzahl der verwalteten Zeitintervalle.
        Returns:
        Anzahl der im Baum gespeicherten Zeitintervalle.
      • contains

        public boolean contains​(long timeStamp)
        Prüft, ob ein Zeitstempel in den gespeicherten Intervallen liegt.
        Parameters:
        timeStamp - Zeitstempel.
        Returns:
        true, falls der Zeitstempel innerhalb der gespeicherten Zeitintervalle liegt. false sonst.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • isEmpty

        public boolean isEmpty()
        Zeigt ob Zeitintervalle im Baum gespeichert sind.
        Returns:
        true falls Zeitintevalle im Baum gespeichert sind.