tree.bisectiontree

## Class BisectionTree

- java.lang.Object
- - tree.bisectiontree.BisectionTree

- All Implemented Interfaces:
    CommonBase, BinaryTree

      class BisectionTree
      extends java.lang.Object
      implements BinaryTree

  Implementace stromu pro hledání bisekcí.

  Popis: Implementuje strom posloupností. Posloupnost je uložena v poli, aby se dala efektivně indexovat.

  Užití: instance této třídy lze používat v aplikacích

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `lowerBound` index prvního prvku v rozsahu indexů, které jsou právě prohledávány
    `protected int` | `range` počet prvků v rozsahu indexů, které jsou právě prohledávány
    `protected boolean` | `rootFlag` příznak, že kořen je právě běžným prvkem
    `protected Sequence` | `sequence` zapouzdřená posloupnost, úložiště

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BisectionTree(Sequence aSequence)` Vyrobí strom pro hledání bisekcí.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCount()` Vrátí počet prvků ve stromě.
    `Element` | `getElement()` Vrátí hodnotu běžného prvku.
    `int` | `getMoveCounter()` Provozní měření.
    `boolean` | `hasLeftBranch()` Zjistí, zda běžný uzel má levou větev.
    `boolean` | `hasRightBranch()` Zjistí, zda běžný uzel má pravou větev.
    `void` | `insertLeft(Element elem)` Vloží elem do levého podstromu.
    `void` | `insertRight(Element elem)` Vloží elem do pravého podstromu.
    `boolean` | `isEmpty()` Zjistí, zda je strom prázdný.
    `boolean` | `isFull()` Zjistí, zda je strom plný.
    `boolean` | `isLeaf()` Zjistí, zda běžný uzel je list.
    `boolean` | `isRoot()` Zjistí, zda běžný uzel je kořen.
    `void` | `moveLeft()` Učiní kořen levého podstromu běžným prvkem.
    `void` | `moveRight()` Učiní kořen praého podstromu běžným prvkem.
    `void` | `moveRoot()` Učiní kořen běžným prvkem.
    `Element` | `remove()` Odstraní běžný uzel.
    `void` | `resetMoveCounter()` Vynuluje provozní měření.
    `void` | `search(SearchCallBack callBack)` Systematicky prochází strom uzel po uzlu.
    `void` | `setElement(Element value)` Nastaví hodnotu běžného prvku do členu datové struktury.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sequence

          protected Sequence sequence

      zapouzdřená posloupnost, úložiště

    - #### lowerBound

          protected int lowerBound

      index prvního prvku v rozsahu indexů, které jsou právě prohledávány

    - #### range

          protected int range

      počet prvků v rozsahu indexů, které jsou právě prohledávány

    - #### rootFlag

          protected boolean rootFlag

      příznak, že kořen je právě běžným prvkem

  - ### Constructor Detail

    - #### BisectionTree

          public BisectionTree(Sequence aSequence)

      Vyrobí strom pro hledání bisekcí.
      Parameters:
        `aSequence` - posloupnost, nad kterou se buduje strom

  - ### Method Detail

    - #### setElement

          public void setElement(Element value)

      Description copied from interface: `CommonBase`
      Nastaví hodnotu běžného prvku do členu datové struktury.

      Vyžaduje: not isEmpty

      Specified by:
        `setElement` in interface `CommonBase`
      Parameters:
        `value` - prvek, který má být uložen do členu

    - #### getElement

          public Element getElement()

      Description copied from interface: `CommonBase`
      Vrátí hodnotu běžného prvku.

      Vyžaduje: not isEmpty

      Specified by:
        `getElement` in interface `CommonBase`
      Returns:
        hodnota běžného prvku

    - #### getMoveCounter

          public int getMoveCounter()

      Description copied from interface: `CommonBase`
      Provozní měření.
      Specified by:
        `getMoveCounter` in interface `CommonBase`
      Returns:
        počet přesunů běžného prvku

    - #### resetMoveCounter

          public void resetMoveCounter()

      Description copied from interface: `CommonBase`
      Vynuluje provozní měření.
      Specified by:
        `resetMoveCounter` in interface `CommonBase`

    - #### isEmpty

          public boolean isEmpty()

      Description copied from interface: `BinaryTree`
      Zjistí, zda je strom prázdný.
      Specified by:
        `isEmpty` in interface `BinaryTree`
      Returns:
        true když je prázdný, jinak false

    - #### isFull

          public boolean isFull()

      Description copied from interface: `BinaryTree`
      Zjistí, zda je strom plný.
      Specified by:
        `isFull` in interface `BinaryTree`
      Returns:
        true když je plný, jinak false

    - #### getCount

          public int getCount()

      Description copied from interface: `BinaryTree`
      Vrátí počet prvků ve stromě.
      Specified by:
        `getCount` in interface `BinaryTree`
      Returns:
        počet prvků ve stromě

    - #### moveRoot

          public void moveRoot()

      Description copied from interface: `BinaryTree`
      Učiní kořen běžným prvkem.
      Specified by:
        `moveRoot` in interface `BinaryTree`

    - #### moveLeft

          public void moveLeft()

      Description copied from interface: `BinaryTree`
      Učiní kořen levého podstromu běžným prvkem.
      Specified by:
        `moveLeft` in interface `BinaryTree`

    - #### moveRight

          public void moveRight()

      Description copied from interface: `BinaryTree`
      Učiní kořen praého podstromu běžným prvkem.
      Specified by:
        `moveRight` in interface `BinaryTree`

    - #### isRoot

          public boolean isRoot()

      Description copied from interface: `BinaryTree`
      Zjistí, zda běžný uzel je kořen.
      Specified by:
        `isRoot` in interface `BinaryTree`
      Returns:
        true když je kořen, jinak false

    - #### isLeaf

          public boolean isLeaf()

      Description copied from interface: `BinaryTree`
      Zjistí, zda běžný uzel je list.
      Specified by:
        `isLeaf` in interface `BinaryTree`
      Returns:
        true když je list, jinak false

    - #### hasLeftBranch

          public boolean hasLeftBranch()

      Description copied from interface: `BinaryTree`
      Zjistí, zda běžný uzel má levou větev.
      Specified by:
        `hasLeftBranch` in interface `BinaryTree`
      Returns:
        true když má levou větev, jinak false

    - #### hasRightBranch

          public boolean hasRightBranch()

      Description copied from interface: `BinaryTree`
      Zjistí, zda běžný uzel má pravou větev.
      Specified by:
        `hasRightBranch` in interface `BinaryTree`
      Returns:
        true když má pravou větev, jinak false

    - #### insertLeft

          public void insertLeft(Element elem)

      Description copied from interface: `BinaryTree`
      Vloží elem do levého podstromu.

      Vyžaduje: not hasLeftBranch and not isFull

      Splní: root se stane běžným prvkem, not isEmpty

      Specified by:
        `insertLeft` in interface `BinaryTree`
      Parameters:
        `elem` - prvek, který má být vložen

    - #### insertRight

          public void insertRight(Element elem)

      Description copied from interface: `BinaryTree`
      Vloží elem do pravého podstromu.

      Vyžaduje: not hasRightBranch and not isFull

      Splní: root se stane běžným prvkem, not isEmpty

      Specified by:
        `insertRight` in interface `BinaryTree`
      Parameters:
        `elem` - prvek, který má být vložen

    - #### remove

          public Element remove()

      Description copied from interface: `BinaryTree`
      Odstraní běžný uzel.

      Vyžaduje: not isEmpty

      Splní: root se stane běžným prvkem

      Specified by:
        `remove` in interface `BinaryTree`
      Returns:
        odstraněný uzel

    - #### search

          public void search(SearchCallBack callBack)

      Description copied from interface: `BinaryTree`
      Systematicky prochází strom uzel po uzlu.
      Specified by:
        `search` in interface `BinaryTree`
      Parameters:
        `callBack` - objekt, který zpracuje každý uzel metodou processCurrentElement