list.linkedlist

## Class DoublyLinkedList

- java.lang.Object
- - list.listinterface.BaseList
  - - list.linkedlist.DoublyLinkedList

- All Implemented Interfaces:
    BaseListInterface, CommonBase, List, QueueList, StackList
  Direct Known Subclasses:
    SortableDoublyLinkedList

      class DoublyLinkedList
      extends BaseList
      implements List, QueueList, StackList

  Implementace obousměrně propojeného seznamu.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `count` aktuální počet členů seznamu
    `protected DoublyLinkedListMember` | `current` běžný člen
    `protected int` | `currentIndex` index běžného prvku
    `protected DoublyLinkedListMember` | `first` první člen
    `protected DoublyLinkedListMember` | `last` poslední člen
    `protected int` | `size` kapacita seznamu

    - ### Fields inherited from class list.listinterface.BaseList

      `moveCounter`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DoublyLinkedList(int aSize)` Vyrobí instanci obousměrně propojeného seznamu.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `append(Element elem)` Vloží elem za poslední prvek seznamu, běžný prvek se neposune.
    `Element` | `getElement()` Vrátí hodnotu běžného prvku.
    `int` | `getSize()` Zjistí kapacitu seznamu.
    `void` | `insert(Element elem)` Vloží elem před běžný prvek.
    `protected boolean` | `isEmpty()` Zjistí, zda je seznam prázdný.
    `boolean` | `isFirst()` Zjistí, zda běžný prvek je první.
    `boolean` | `isLast()` Zjistí, zda běžný prvek je poslední.
    `void` | `moveFirst()` Učiní hlavu seznamu běžným prvkem.
    `void` | `moveLast()` Učiní ocas běžným prvkem.
    `void` | `moveNext()` Učiní následující prvek běžným prvkem.
    `void` | `movePrev()` Učiní předcházející prvek běžným prvkem.
    `void` | `moveTo(int index)` Učiní index-tý prvek běžným prvkem.
    `Element` | `remove()` Odstraní běžný prvek.
    `void` | `setElement(Element value)` Nastaví hodnotu běžného prvku do členu datové struktury.

    - ### Methods inherited from class list.listinterface.BaseList

      `getMoveCounter, resetMoveCounter`

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

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

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

      `getMoveCounter, resetMoveCounter`

- - ### Field Detail

    - #### size

          protected int size

      kapacita seznamu

    - #### currentIndex

          protected int currentIndex

      index běžného prvku

    - #### count

          protected int count

      aktuální počet členů seznamu

    - #### last

          protected DoublyLinkedListMember last

      poslední člen

    - #### first

          protected DoublyLinkedListMember first

      první člen

    - #### current

          protected DoublyLinkedListMember current

      běžný člen

  - ### Constructor Detail

    - #### DoublyLinkedList

          public DoublyLinkedList(int aSize)

      Vyrobí instanci obousměrně propojeného seznamu.
      Parameters:
        `aSize` - kapacita seznamu

  - ### Method Detail

    - #### isEmpty

          protected boolean isEmpty()

      Zjistí, zda je seznam prázdný.
      Returns:
        true když je prázdný, jinak false

    - #### 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`
      Specified by:
        `setElement` in class `BaseList`
      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`
      Specified by:
        `getElement` in class `BaseList`
      Returns:
        hodnota běžného prvku

    - #### insert

          public void insert(Element elem)

      Description copied from interface: `List`
      Vloží elem před běžný prvek.

      Vyžaduje: not isFull

      Specified by:
        `insert` in interface `List`
      Specified by:
        `insert` in interface `StackList`
      Parameters:
        `elem` - prvek, který má být vložen

    - #### append

          public void append(Element elem)

      Description copied from interface: `QueueList`
      Vloží elem za poslední prvek seznamu, běžný prvek se neposune.

      Vyžaduje: not IsFull

      Specified by:
        `append` in interface `QueueList`
      Parameters:
        `elem` - nový prvek, který se má přidat na konec seznamu

    - #### remove

          public Element remove()

      Description copied from interface: `BaseListInterface`
      Odstraní běžný prvek.

      Vyžaduje: not isEmpty

      Splní: not isFull

      Specified by:
        `remove` in interface `BaseListInterface`
      Specified by:
        `remove` in class `BaseList`
      Returns:
        odstraněný běžný prvek

    - #### moveFirst

          public void moveFirst()

      Description copied from interface: `BaseListInterface`
      Učiní hlavu seznamu běžným prvkem.

      Vyžaduje: not isEmpty

      Specified by:
        `moveFirst` in interface `BaseListInterface`
      Specified by:
        `moveFirst` in class `BaseList`

    - #### moveLast

          public void moveLast()

      Description copied from interface: `List`
      Učiní ocas běžným prvkem.

      Vyžaduje: not isEmpty

      Specified by:
        `moveLast` in interface `List`

    - #### moveNext

          public void moveNext()

      Description copied from interface: `List`
      Učiní následující prvek běžným prvkem.

      Vyžaduje: not isEmpty and not isLast

      Specified by:
        `moveNext` in interface `List`

    - #### movePrev

          public void movePrev()

      Description copied from interface: `List`
      Učiní předcházející prvek běžným prvkem.

      Vyžaduje: not isEmpty and not isFirst

      Specified by:
        `movePrev` in interface `List`

    - #### moveTo

          public void moveTo(int index)

      Description copied from interface: `List`
      Učiní index-tý prvek běžným prvkem.

      Vyžaduje: not isEmpty and (index in [0..Pred(getSize)])

      Specified by:
        `moveTo` in interface `List`
      Parameters:
        `index` - pořadové číslo prvku, který má být běžný (čísluje se od 0?)

    - #### isFirst

          public boolean isFirst()

      Description copied from interface: `List`
      Zjistí, zda běžný prvek je první.

      Vyžaduje: not isEmpty

      Specified by:
        `isFirst` in interface `List`
      Returns:
        true když je první, jinak false

    - #### isLast

          public boolean isLast()

      Description copied from interface: `List`
      Zjistí, zda běžný prvek je poslední.

      Vyžaduje: not isEmpty

      Specified by:
        `isLast` in interface `List`
      Returns:
        true když je poslední, jinak false

    - #### getSize

          public int getSize()

      Description copied from interface: `BaseListInterface`
      Zjistí kapacitu seznamu. To jest max. možný počet prvků, které smějí být v seznamu.
      Specified by:
        `getSize` in interface `BaseListInterface`
      Specified by:
        `getSize` in class `BaseList`
      Returns:
        kapacita seznamu