searchable.recursivesearchtree

## Class RecursiveAVLTree

- java.lang.Object
- - searchable.recursivesearchtree.RecursiveSearchTree
  - - searchable.recursivesearchtree.RecursiveAVLTree

- All Implemented Interfaces:
    Searchable

      class RecursiveAVLTree
      extends RecursiveSearchTree

  Implementace AVL-stromu rekurzivně.

  Užití: Ve svém programu deklarujte proměnné typu RecursiveAVLTree.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RecursiveAVLTree()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected TreeNode` | `createNode(SearchableElement elem)` Vyrobí uzel typu AVLTreeNode.
    `SearchableElement` | `remove(SearchableElement key)` Najde a odstraní prvek ze stromu.
    `SearchableElement` | `update(SearchableElement elem)` Najde a upraví prvek ze stromu, případně vložit nový prvek do stromu.

    - ### Methods inherited from class searchable.recursivesearchtree.RecursiveSearchTree

      `finalize, getCount, getOperationCounter, getReadable, getRemoveCtr, getRoot, getSelectCtr, getSortCounter, getUpdateCtr, insert, isEmpty, isFull, select, setCount, setRemoveCtr, setRoot, setSelectCtr, setUpdateCtr`

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

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

- - ### Constructor Detail

    - #### RecursiveAVLTree

          RecursiveAVLTree()

  - ### Method Detail

    - #### createNode

          protected TreeNode createNode(SearchableElement elem)

      Vyrobí uzel typu AVLTreeNode.

      Užití: v metodě TreeNode.update

      Overrides:
        `createNode` in class `RecursiveSearchTree`
      Parameters:
        `elem` - prvek, ze kterého se vyrobí uzel stromu
      Returns:
        nový uzel stromu

    - #### update

          public SearchableElement update(SearchableElement elem)

      Najde a upraví prvek ze stromu, případně vložit nový prvek do stromu.

      Popis: Najde ve stromě prvek podle klíče elem.key a nahradí jej prvkem elem. Jestliže hledaný prvek ve stromě není, zařadí nový prvek na správné místo do stromu.

      Specified by:
        `update` in interface `Searchable`
      Overrides:
        `update` in class `RecursiveSearchTree`
      Parameters:
        `elem` - nový prvek, který má nahradit ve stromě prvek původní nebo který se má přidat do stromu
      Returns:
        null nebo prvek, který byl nahrazen novým prvkem

    - #### remove

          public SearchableElement remove(SearchableElement key)

      Najde a odstraní prvek ze stromu.

      Popis: Najde prvek podle klíče key a odstraní jej ze stromu.

      Specified by:
        `remove` in interface `Searchable`
      Overrides:
        `remove` in class `RecursiveSearchTree`
      Parameters:
        `key` - klíč prvku, který se má odstranit
      Returns:
        odstraněný prvek nebo null prvek v případě, že se nenašel