searchable.searchsequence

## Class ReorganizedSearchSequence

- java.lang.Object
- - searchable.searchsequence.SearchSequence
  - - searchable.searchsequence.ReorganizedSearchSequence

- All Implemented Interfaces:
    Searchable

      class ReorganizedSearchSequence
      extends SearchSequence
      implements Searchable

  Implementace reorganizované vyhledávací posloupnosti.

  Popis: Heuristika - každý nalezený nebo vložený prvek se přesune do hlavy posloupnosti. Vkládání před první prvek je efektivní v kruhovém seznamu implementovaném pomocí pole nebo v lineárním seznamu, který je uložen na konci pole a efektivně vkládá nový prvek před hlavu (tj. bez posouvání mnoha prvků v poli). Implementace metody makeFirst je méně vhodná pro spojové seznamy, kde se vždy jeden člen seznamu zruší a jeden nový člen seznamu vyrobí. Implementováno obyčejnou posloupností, ale lepší by byla posloupnost se zarážkou (je tam cvičení, proto ji nemohu použít).

  Poznámka: nelze dědit z SearchSequenceWithSentinel, protože potřebujeme ReorganizableSequence, a ne jen Sequence.

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

- - ### Field Summary

    - ### Fields inherited from class searchable.searchsequence.SearchSequence

      `sequence`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReorganizedSearchSequence(ReorganizableSequenceFactory aFactory, int aSize)` Vyrobí instanci vyhledávací posloupnosti ReorganizedSearchSequence.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `SearchableElement` | `select(SearchableElement key)` Najde prvek vyhledávací struktury podle klíče.
    `SearchableElement` | `update(SearchableElement elem)` Najde a upraví nebo nenajde a vloží prvek vyhledávací struktury.

    - ### Methods inherited from class searchable.searchsequence.SearchSequence

      `getCount, getOperationCounter, getReadable, getSortCounter, insert, isEmpty, isFull, remove, setSequence`

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

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

    - ### Methods inherited from interface searchable.searchableinterface.Searchable

      `getCount, getOperationCounter, getReadable, getSortCounter, insert, isEmpty, isFull, remove`

- - ### Constructor Detail

    - #### ReorganizedSearchSequence

          public ReorganizedSearchSequence(ReorganizableSequenceFactory aFactory,
                                           int aSize)

      Vyrobí instanci vyhledávací posloupnosti ReorganizedSearchSequence.

      Popis: volá zdědný konstruktor a na konec posloupnosti přidá zarážku.

      Užití: zejména ve factory

      Parameters:
        `aFactory` - továrna na nové prázdné reorganizovatelné posloupnosti
        `aSize` - požadovaná kapacita nového seznamu

  - ### Method Detail

    - #### select

          public SearchableElement select(SearchableElement key)

      Description copied from interface: `Searchable`
      Najde prvek vyhledávací struktury podle klíče.
      Specified by:
        `select` in interface `Searchable`
      Overrides:
        `select` in class `SearchSequence`
      Parameters:
        `key` - klíč
      Returns:
        nalezený prvek nebo null

    - #### update

          public SearchableElement update(SearchableElement elem)

      Description copied from interface: `Searchable`
      Najde a upraví nebo nenajde a vloží prvek vyhledávací struktury.
      Specified by:
        `update` in interface `Searchable`
      Overrides:
        `update` in class `SearchSequence`
      Parameters:
        `elem` - prvek, který se má upravit nebo vložit
      Returns:
        odstraněný původní prvek nebo null