searchable.searchsequence

## Class SearchSequence

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

- All Implemented Interfaces:
    Searchable
  Direct Known Subclasses:
    ReorganizedSearchSequence, SearchSequenceWithOrderedSelect, SearchSequenceWithSentinel

      class SearchSequence
      extends java.lang.Object
      implements Searchable

  Implementace neuspořádané vyhledávací posloupnosti.

  Popis: Nejjednodušší vyhledávání bez zarážky.

  Nepoužívejte na jednosměrně zřetězené spojové seznamy, je to neefektivní! Při vymazání posledního člena seznamu se totiž odkaz na poslední prvek (last) musí přesunout zpět, ale to nemůže udělat jinak než průchodem celého seznamu od začátku až k novému konci. To se týká i odvozených seznamů s opožděným běžným prvkem nebo s prvkem vlečeným za běžným prvkem. V těchto případech použijte vyhledávací posloupnost se zarážkou.

  S obousměrně zřetězenými spojovými seznamy, se seznamy implementovanými polem nebo jinak (např. pomocí dvou zásobníků) funguje SearchSequence dobře.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Sequence` | `sequence` posloupnost, ve které se vyhledává

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SearchSequence(Sequence aSequence)` Vyrobí instanci vyhledávací posloupnosti SearchSequence.
    `SearchSequence(SequenceFactory aSequenceFactory, int aSize)` Vyrobí instanci vyhledávací posloupnosti SearchSequence.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCount()` Zjistí počet prvků v posloupnosti.
    `int` | `getOperationCounter()` Provozní měření.
    `void` | `getReadable(java.util.List<java.lang.String> aStrings)` Naplní kolekci řetězců čitelným obsahem vyhledávací struktury.
    `int` | `getSortCounter()` Provozní měření.
    `void` | `insert(SearchableElement elem)` Vloží prvek do posloupnosti.
    `boolean` | `isEmpty()` Zjistí, zda je posloupnost prázdná.
    `boolean` | `isFull()` Zjistí, zda je vyhledávací struktura plná.
    `SearchableElement` | `remove(SearchableElement key)` Najde a odstraní prvek z vyhledávací struktury.
    `SearchableElement` | `select(SearchableElement key)` Najde prvek vyhledávací struktury podle klíče.
    `protected void` | `setSequence(Sequence value)` Umožní aktualizovat sequence z dědiců.
    `SearchableElement` | `update(SearchableElement elem)` Najde a upraví nebo nenajde a vloží prvek vyhledávací struktury.

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

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

- - ### Field Detail

    - #### sequence

          protected Sequence sequence

      posloupnost, ve které se vyhledává

  - ### Constructor Detail

    - #### SearchSequence

          public SearchSequence(SequenceFactory aSequenceFactory,
                                int aSize)

      Vyrobí instanci vyhledávací posloupnosti SearchSequence.

      Popis: inicializuje atributy instance.

      Užití: zejména ve factory

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

    - #### SearchSequence

          public SearchSequence(Sequence aSequence)

      Vyrobí instanci vyhledávací posloupnosti SearchSequence.

      Popis: inicializuje atributy instance.

      Užití: volejte z konstruktorů odvozených tříd (dědiců).

      Parameters:
        `aSequence` - posloupnost, která se má prohledávat

  - ### Method Detail

    - #### setSequence

          protected void setSequence(Sequence value)

      Umožní aktualizovat sequence z dědiců.
      Parameters:
        `value` - nová posloupnost do atributu sequence

    - #### 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`
      Parameters:
        `key` - klíč
      Returns:
        nalezený prvek nebo null

    - #### insert

          public void insert(SearchableElement elem)

      Vloží prvek do posloupnosti.

      Popis: přidá nový prvek vždy na konec posloupnosti.

      Vyžaduje: not isFull

      Specified by:
        `insert` in interface `Searchable`
      Parameters:
        `elem` - prvek, který se má vložit

    - #### 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`
      Parameters:
        `elem` - prvek, který se má upravit nebo vložit
      Returns:
        odstraněný původní prvek nebo null

    - #### remove

          public SearchableElement remove(SearchableElement key)

      Description copied from interface: `Searchable`
      Najde a odstraní prvek z vyhledávací struktury.

      Popis: najde prvek podle klíče key a odstraní jej z vyhledávací struktury.

      Specified by:
        `remove` in interface `Searchable`
      Parameters:
        `key` - klíč prvku, který se má odstranit
      Returns:
        odstraněný prvek nebo null

    - #### isEmpty

          public boolean isEmpty()

      Zjistí, zda je posloupnost prázdná.

      Poznámka: Při použití zarážky redefinujte!

      Specified by:
        `isEmpty` in interface `Searchable`
      Returns:
        true když posloupnost je prázdná, jinak false.

    - #### isFull

          public boolean isFull()

      Description copied from interface: `Searchable`
      Zjistí, zda je vyhledávací struktura plná.
      Specified by:
        `isFull` in interface `Searchable`
      Returns:
        true když vyhledávací struktura je plná, jinak false.

    - #### getCount

          public int getCount()

      Zjistí počet prvků v posloupnosti.

      Poznámka: při použití zarážky redefinujte!

      Specified by:
        `getCount` in interface `Searchable`
      Returns:
        počet prvků v posloupnosti

    - #### getOperationCounter

          public int getOperationCounter()

      Description copied from interface: `Searchable`
      Provozní měření. Zjistí počet elementárních operací přesunu běžného prvku během poslední operace select.
      Specified by:
        `getOperationCounter` in interface `Searchable`
      Returns:
        počet významných elementárních operací

    - #### getSortCounter

          public int getSortCounter()

      Description copied from interface: `Searchable`
      Provozní měření. Zjistí počet elementárních operací vyjmutí, vložení nebo záměny prvku během poslední operace sort.
      Specified by:
        `getSortCounter` in interface `Searchable`
      Returns:
        počet významných elementárních operací

    - #### getReadable

          public void getReadable(java.util.List<java.lang.String> aStrings)

      Description copied from interface: `Searchable`
      Naplní kolekci řetězců čitelným obsahem vyhledávací struktury.
      Specified by:
        `getReadable` in interface `Searchable`
      Parameters:
        `aStrings` - kolekce řetězců, která se má naplnit čitelným obsahem