heap.heapshallowarray

## Class HeapShallowArray

- java.lang.Object
- - heap.heapshallowarray.HeapShallowArray

- All Implemented Interfaces:
    HeapTree, CommonBase

      class HeapShallowArray
      extends java.lang.Object
      implements HeapTree

  Implementace mělké haldy nad uspořádanou posloupností.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private int` | `current` index běžného prvku
    `private ShallowSequence` | `store` úložiště

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HeapShallowArray(SortableSequence base)` Vyrobí instanci třídy HeapArray.

  - ### Method Summary

    All Methods Instance Methods Concrete 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ě.
    `Element` | `getElement()` Vrátí hodnotu běžného prvku.
    `java.lang.Object` | `getHandle()` Vrátí identifikační číslo běžného prvku.
    `Element` | `getLeft()` Vrátí prvek z levého syna.
    `int` | `getMoveCounter()` Provozní měření.
    `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` | `resetMoveCounter()` Vynuluje provozní měření.
    `void` | `select(java.lang.Object handle)` Nastaví prvek identifikovaný číslem handle jako běžný prvek.
    `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

    - #### store

          private ShallowSequence store

      úložiště

    - #### current

          private int current

      index běžného prvku

  - ### Constructor Detail

    - #### HeapShallowArray

          public HeapShallowArray(SortableSequence base)

      Vyrobí instanci třídy HeapArray.

      Popis: inicializuje atributy instance.

      Užití: zejména k inicializaci proměnných typu HeapTree.

      Vyžaduje: posloupnost base nesmí být prázdná, protože mělká halda nesmí být nikdy prázdná, ani při vytvoření.

      Parameters:
        `base` - posloupnost, nad kterou se má vytvořit mělká halda

  - ### 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: `HeapTree`
      Zjistí, zda je strom prázdný.
      Specified by:
        `isEmpty` in interface `HeapTree`
      Returns:
        true když je prázdný, jinak false

    - #### isFull

          public boolean isFull()

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

    - #### getCount

          public int getCount()

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

    - #### getParent

          public Element getParent()

      Description copied from interface: `HeapTree`
      Vrátí prvek z rodičovského uzlu.

      Vyžaduje: not isEmpty and not isRoot

      Specified by:
        `getParent` in interface `HeapTree`
      Returns:
        prvek z rodičovského uzlu

    - #### getLeft

          public Element getLeft()

      Description copied from interface: `HeapTree`
      Vrátí prvek z levého syna.

      Vyžaduje: not isEmpty and hasLeftBranch

      Specified by:
        `getLeft` in interface `HeapTree`
      Returns:
        prvek z levého syna

    - #### getRight

          public Element getRight()

      Description copied from interface: `HeapTree`
      Vrátí prvek z pravého syna.

      Vyžaduje: not isEmpty and hasRightBranch

      Specified by:
        `getRight` in interface `HeapTree`
      Returns:
        prvek z pravého syna

    - #### moveRoot

          public void moveRoot()

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

    - #### moveUp

          public void moveUp()

      Description copied from interface: `HeapTree`
      Učiní předka běžným prvkem.

      Vyžaduje: not isEmpty and not isRoot

      Specified by:
        `moveUp` in interface `HeapTree`

    - #### moveLeft

          public void moveLeft()

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

      Vyžaduje: not isEmpty and hasLeftBranch

      Specified by:
        `moveLeft` in interface `HeapTree`

    - #### moveRight

          public void moveRight()

      Description copied from interface: `HeapTree`
      Učiní kořen pravého podstromu běžným prvkem.

      Vyžaduje: not isEmpty and hasRightBranch

      Specified by:
        `moveRight` in interface `HeapTree`

    - #### isRoot

          public boolean isRoot()

      Description copied from interface: `HeapTree`
      Zjistí, zda zda běžný vrchol je kořen.

      Vyžaduje: not isEmpty

      Specified by:
        `isRoot` in interface `HeapTree`
      Returns:
        true když je je kořen, jinak false

    - #### isLeaf

          public boolean isLeaf()

      Description copied from interface: `HeapTree`
      Zjistí, zda běžný vrchol je list.

      Vyžaduje: not isEmpty

      Specified by:
        `isLeaf` in interface `HeapTree`
      Returns:
        true když je list, jinak false

    - #### hasLeftBranch

          public boolean hasLeftBranch()

      Description copied from interface: `HeapTree`
      Zjistí, zda běžný vrchol má levou větev.

      Vyžaduje: not isEmpty

      Specified by:
        `hasLeftBranch` in interface `HeapTree`
      Returns:
        true když má levou větev, jinak false

    - #### hasRightBranch

          public boolean hasRightBranch()

      Description copied from interface: `HeapTree`
      Zjistí, zda běžný vrchol má pravou větev.

      Vyžaduje: not isEmpty

      Specified by:
        `hasRightBranch` in interface `HeapTree`
      Returns:
        true když má pravou větev, jinak false

    - #### append

          public void append()

      Description copied from interface: `HeapTree`
      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.

      Specified by:
        `append` in interface `HeapTree`

    - #### remove

          public Element remove()

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

      Vyžaduje: not isEmpty

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

      Specified by:
        `remove` in interface `HeapTree`
      Returns:
        prvek z odstraněného vrcholu

    - #### select

          public void select(java.lang.Object handle)

      Description copied from interface: `HeapTree`
      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

      Specified by:
        `select` in interface `HeapTree`
      Parameters:
        `handle` - handle prvku, který má být běžný

    - #### getHandle

          public java.lang.Object getHandle()

      Description copied from interface: `HeapTree`
      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.
      Specified by:
        `getHandle` in interface `HeapTree`
      Returns:
        handle běžného prvku