tree.binarytreeinterface

## Interface BinaryTree

- All Superinterfaces:
    CommonBase
  All Known Implementing Classes:
    BisectionTree, BreadthFirstBinaryTree, DepthFirstBinaryTree, RealBinaryTree

      public interface BinaryTree
      extends CommonBase

  Specifikace binárního stromu.

  Užití: deklarujte proměnné, implementujte třídou.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCount()` Vrátí počet prvků ve stromě.
    `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` | `search(SearchCallBack callBack)` Systematicky prochází strom uzel po uzlu.

    - ### Methods inherited from interface list.listinterface.CommonBase

      `getElement, getMoveCounter, resetMoveCounter, setElement`

- - ### Method Detail

    - #### isEmpty

          boolean isEmpty()

      Zjistí, zda je strom prázdný.
      Returns:
        true když je prázdný, jinak false

    - #### isFull

          boolean isFull()

      Zjistí, zda je strom plný.
      Returns:
        true když je plný, jinak false

    - #### getCount

          int getCount()

      Vrátí počet prvků ve stromě.
      Returns:
        počet prvků ve stromě

    - #### moveRoot

          void moveRoot()

      Učiní kořen běžným prvkem.

    - #### moveLeft

          void moveLeft()

      Učiní kořen levého podstromu běžným prvkem.

    - #### moveRight

          void moveRight()

      Učiní kořen praého podstromu běžným prvkem.

    - #### isRoot

          boolean isRoot()

      Zjistí, zda běžný uzel je kořen.
      Returns:
        true když je kořen, jinak false

    - #### isLeaf

          boolean isLeaf()

      Zjistí, zda běžný uzel je list.
      Returns:
        true když je list, jinak false

    - #### hasLeftBranch

          boolean hasLeftBranch()

      Zjistí, zda běžný uzel má levou větev.
      Returns:
        true když má levou větev, jinak false

    - #### hasRightBranch

          boolean hasRightBranch()

      Zjistí, zda běžný uzel má pravou větev.
      Returns:
        true když má pravou větev, jinak false

    - #### insertLeft

          void insertLeft(Element elem)

      Vloží elem do levého podstromu.

      Vyžaduje: not hasLeftBranch and not isFull

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

      Parameters:
        `elem` - prvek, který má být vložen

    - #### insertRight

          void insertRight(Element elem)

      Vloží elem do pravého podstromu.

      Vyžaduje: not hasRightBranch and not isFull

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

      Parameters:
        `elem` - prvek, který má být vložen

    - #### remove

          Element remove()

      Odstraní běžný uzel.

      Vyžaduje: not isEmpty

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

      Returns:
        odstraněný uzel

    - #### search

          void search(SearchCallBack callBack)

      Systematicky prochází strom uzel po uzlu.
      Parameters:
        `callBack` - objekt, který zpracuje každý uzel metodou processCurrentElement