heap.heaptreeinterface

## Interface HeapTree

- All Superinterfaces:
    CommonBase

      public interface HeapTree
      extends CommonBase

  Specifikace binárního stromu pro implementaci haldy.

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

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `append()` Přidá vrchol s hodnotou null jako poslední a učiní jej běžným uzlem.
    `int` | `getCount()` Vrátí počet prvků ve stromě.
    `java.lang.Object` | `getHandle()` Vrátí identifikační číslo běžného prvku.
    `Element` | `getLeft()` Vrátí prvek z levého syna.
    `Element` | `getParent()` Vrátí prvek z rodičovského uzlu.
    `Element` | `getRight()` Vrátí prvek z pravého syna.
    `boolean` | `hasLeftBranch()` Zjistí, zda běžný vrchol má levou větev.
    `boolean` | `hasRightBranch()` Zjistí, zda běžný vrchol má pravou větev.
    `boolean` | `isEmpty()` Zjistí, zda je strom prázdný.
    `boolean` | `isFull()` Zjistí, zda je strom plný.
    `boolean` | `isLeaf()` Zjistí, zda běžný vrchol je list.
    `boolean` | `isRoot()` Zjistí, zda zda běžný vrchol je kořen.
    `void` | `moveLeft()` Učiní kořen levého podstromu běžným prvkem.
    `void` | `moveRight()` Učiní kořen pravého podstromu běžným prvkem.
    `void` | `moveRoot()` Učiní kořen běžným prvkem.
    `void` | `moveUp()` Učiní předka běžným prvkem.
    `Element` | `remove()` Odstraní poslední vrchol (poslední v pořadí v poslední vrstvě).
    `void` | `select(java.lang.Object handle)` Nastaví prvek identifikovaný číslem handle jako běžný prvek.

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

      `getElement, getMoveCounter, resetMoveCounter, setElement`

- - ### Method Detail

    - #### getParent

          Element getParent()

      Vrátí prvek z rodičovského uzlu.

      Vyžaduje: not isEmpty and not isRoot

      Returns:
        prvek z rodičovského uzlu

    - #### getLeft

          Element getLeft()

      Vrátí prvek z levého syna.

      Vyžaduje: not isEmpty and hasLeftBranch

      Returns:
        prvek z levého syna

    - #### getRight

          Element getRight()

      Vrátí prvek z pravého syna.

      Vyžaduje: not isEmpty and hasRightBranch

      Returns:
        prvek z pravého syna

    - #### 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.

    - #### moveUp

          void moveUp()

      Učiní předka běžným prvkem.

      Vyžaduje: not isEmpty and not isRoot

    - #### moveLeft

          void moveLeft()

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

      Vyžaduje: not isEmpty and hasLeftBranch

    - #### moveRight

          void moveRight()

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

      Vyžaduje: not isEmpty and hasRightBranch

    - #### isRoot

          boolean isRoot()

      Zjistí, zda zda běžný vrchol je kořen.

      Vyžaduje: not isEmpty

      Returns:
        true když je je kořen, jinak false

    - #### isLeaf

          boolean isLeaf()

      Zjistí, zda běžný vrchol je list.

      Vyžaduje: not isEmpty

      Returns:
        true když je list, jinak false

    - #### hasLeftBranch

          boolean hasLeftBranch()

      Zjistí, zda běžný vrchol má levou větev.

      Vyžaduje: not isEmpty

      Returns:
        true když má levou větev, jinak false

    - #### hasRightBranch

          boolean hasRightBranch()

      Zjistí, zda běžný vrchol má pravou větev.

      Vyžaduje: not isEmpty

      Returns:
        true když má pravou větev, jinak false

    - #### append

          void append()

      Přidá vrchol s hodnotou null jako poslední a učiní jej běžným uzlem.

      Vyžaduje: not isFull

      Splní: nový uzel se stane běžným uzlem, not isEmpty.

    - #### remove

          Element remove()

      Odstraní poslední vrchol (poslední v pořadí v poslední vrstvě).

      Vyžaduje: not isEmpty

      Splní: root nebo null se stane běžným prvkem, not isFull.

      Returns:
        prvek z odstraněného vrcholu

    - #### select

          void select(java.lang.Object handle)

      Nastaví prvek identifikovaný číslem handle jako běžný prvek. Typ Node zůstane skrytý.

      Vyžaduje: hledaný prvek musí být v haldě, not isEmpty

      Parameters:
        `handle` - handle prvku, který má být běžný

    - #### getHandle

          java.lang.Object getHandle()

      Vrátí identifikační číslo běžného prvku. Typ Node zůstane skrytý. jako handle bývá používán index pole nebo adresa prvku.
      Returns:
        handle běžného prvku