tree.binarytree

## Class DepthFirstBinaryTree

- java.lang.Object
- - tree.binarytree.RealBinaryTree
  - - tree.binarytree.DepthFirstBinaryTree

- All Implemented Interfaces:
    CommonBase, BinaryTree

      class DepthFirstBinaryTree
      extends RealBinaryTree
      implements BinaryTree

  Dynamická implementace binárního stromu s prohledáváním do hloubky.

  Popis: nahrazuje zděděnou metodu search prohledáváním) hloubky pomocí zásobníku.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Latch` | `latch` zachycený stav procházení
    `private Stack` | `stack` zásobník, kde se pamatují stavy uzlů stromu
    `private static int` | `stackSize` maximální hloubka zásobníku na procházení do hloubky
    `private SearchState` | `state` stav procházení běžného uzlu

    - ### Fields inherited from class tree.binarytree.RealBinaryTree

      `count, current, moveCounter, parent, root, size`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DepthFirstBinaryTree(int aSize)` Vyrobí binární strom s prohledáváním do hloubky.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `popLatch()` Obnoví stav běžného uzlu ze zásobníku.
    `private void` | `pushLatch()` Zachytí stav běžného uzlu a vloží do zásobníku.
    `void` | `search(SearchCallBack callBack)` Systematicky prochází strom uzel po uzlu.

    - ### Methods inherited from class tree.binarytree.RealBinaryTree

      `finalize, getCount, getElement, getMoveCounter, hasLeftBranch, hasRightBranch, insertLeft, insertRight, isEmpty, isFull, isLeaf, isRoot, moveLeft, moveRight, moveRoot, remove, resetMoveCounter, setElement`

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

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

    - ### Methods inherited from interface tree.binarytreeinterface.BinaryTree

      `getCount, hasLeftBranch, hasRightBranch, insertLeft, insertRight, isEmpty, isFull, isLeaf, isRoot, moveLeft, moveRight, moveRoot, remove`

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

      `getElement, getMoveCounter, resetMoveCounter, setElement`

- - ### Field Detail

    - #### stackSize

          private static final int stackSize

      maximální hloubka zásobníku na procházení do hloubky
      See Also:
        Constant Field Values

    - #### stack

          private Stack stack

      zásobník, kde se pamatují stavy uzlů stromu

    - #### latch

          private Latch latch

      zachycený stav procházení

    - #### state

          private SearchState state

      stav procházení běžného uzlu

  - ### Constructor Detail

    - #### DepthFirstBinaryTree

          public DepthFirstBinaryTree(int aSize)

      Vyrobí binární strom s prohledáváním do hloubky.
      Parameters:
        `aSize` - požadovaná kapacita stromu

  - ### Method Detail

    - #### pushLatch

          private void pushLatch()

      Zachytí stav běžného uzlu a vloží do zásobníku.

    - #### popLatch

          private void popLatch()

      Obnoví stav běžného uzlu ze zásobníku.

    - #### search

          public void search(SearchCallBack callBack)

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