graph.followerarraygraph

## Class FollowerArrayGraph

- java.lang.Object
- - graph.followerarraygraph.FollowerArrayGraph

- All Implemented Interfaces:
    Graph
  Direct Known Subclasses:
    FollowerArrayDirectedGraph

      abstract class FollowerArrayGraph
      extends java.lang.Object
      implements Graph

  Implementace grafu.

  Popis: implementace grafu polem následovníků

  Užití: Třída je určena k dědění. V aplikacích nelze tvořit instance této třídy.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `currEdgeIx` index běžné hrany
    `protected int` | `currVertexIx` index běžného vrcholu
    `protected int` | `edgeCount` aktuální počet hran v grafu
    `protected FollowerArrayGraphEdge[]` | `edges` úložiště hran
    `private boolean` | `edgeValid` úložiště vrcholů
    `protected int` | `vertCount` aktuální počet vrcholů v grafu
    `private boolean` | `vertexValid` příznak: je zvolen běžný vrchol?
    `protected FollowerArrayGraphVertex[]` | `vertices`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FollowerArrayGraph(int vertNr, int edgeNr)` Vyrobí instanci třídy GraphFollowerArray.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addVertex(GraphVertex aVertex)` Přídá vrchol do grafu.
    `GraphEdge` | `getEdge()` Vrátí běžnou hranu nebo null.
    `int` | `getEdgeCount()` Zjistí, kolik hran má běžný vrchol.
    `int` | `getTotalEdgeCount()` Zjistí, kolik kolik hran má celý graf.
    `GraphVertex` | `getVertex()` Vrátí běžný vrchol nebo null.
    `GraphVertex` | `getVertex(GraphLatch aLatch)` Vrátí vrchol zachycený v aLatch.
    `int` | `getVertexCount()` Zjistí, kolik vrcholů má graf.
    `boolean` | `isLastEdge()` Zjistí, zda je běžná hrana poslední.
    `boolean` | `isLastVertex()` Zjistí, zda je běžný vrchol poslední.
    `boolean` | `isValidEdge()` Zjistí, zda Je běžná hrana platná.
    `boolean` | `isValidVertex()` Zjistí, zda Je běžný vrchol platný.
    `GraphLatch` | `latch()` Zachytí běžný stav procházení grafu.
    `GraphEdge` | `moveFirstEdge()` Učiní první hranu vrcholu běžnou.
    `GraphVertex` | `moveFirstVertex()` Učiní první vrchol běžným.
    `GraphEdge` | `moveNextEdge()` Běžnou hranou učiní další hranu v posloupnosti.
    `GraphVertex` | `moveNextVertex()` Běžným vrcholem učiní další vrchol v posloupnosti.
    `void` | `restore(GraphLatch graphState)` Obnoví běžný stav procházení grafu.
    `void` | `select(GraphVertex aTarget)` Nastaví běžný stav procházení grafu na první hranu vrcholu aTarget.
    `void` | `setEdge(GraphEdge value)` Nastaví hodnotu běžné hrany.
    `void` | `setVertex(GraphVertex value)` Nastaví hodnotu běžného vrcholu.
    `void` | `traverse()` Přejde po běžné hraně z výchozího do cílového vrcholu.

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

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

    - ### Methods inherited from interface graph.graphinterface.Graph

      `addEdge`

- - ### Field Detail

    - #### vertexValid

          private boolean vertexValid

      příznak: je zvolen běžný vrchol?

    - #### edgeValid

          private boolean edgeValid

      úložiště vrcholů

    - #### vertices

          protected FollowerArrayGraphVertex[] vertices

    - #### edges

          protected FollowerArrayGraphEdge[] edges

      úložiště hran

    - #### vertCount

          protected int vertCount

      aktuální počet vrcholů v grafu

    - #### edgeCount

          protected int edgeCount

      aktuální počet hran v grafu

    - #### currVertexIx

          protected int currVertexIx

      index běžného vrcholu

    - #### currEdgeIx

          protected int currEdgeIx

      index běžné hrany

  - ### Constructor Detail

    - #### FollowerArrayGraph

          public FollowerArrayGraph(int vertNr,
                                    int edgeNr)

      Vyrobí instanci třídy GraphFollowerArray.
      Parameters:
        `vertNr` - maximální možný počet vrcholů v grafu
        `edgeNr` - maximální možný počet hran v grafu

  - ### Method Detail

    - #### addVertex

          public void addVertex(GraphVertex aVertex)

      Description copied from interface: `Graph`
      Přídá vrchol do grafu.
      Specified by:
        `addVertex` in interface `Graph`
      Parameters:
        `aVertex` - vrchol, který má být přidán

    - #### getVertexCount

          public int getVertexCount()

      Description copied from interface: `Graph`
      Zjistí, kolik vrcholů má graf.
      Specified by:
        `getVertexCount` in interface `Graph`
      Returns:
        počet vrcholů grafu

    - #### getEdgeCount

          public int getEdgeCount()

      Description copied from interface: `Graph`
      Zjistí, kolik hran má běžný vrchol.
      Specified by:
        `getEdgeCount` in interface `Graph`
      Returns:
        počet hran incidujících s běžným vrcholem

    - #### getTotalEdgeCount

          public int getTotalEdgeCount()

      Description copied from interface: `Graph`
      Zjistí, kolik kolik hran má celý graf.
      Specified by:
        `getTotalEdgeCount` in interface `Graph`
      Returns:
        počet hran grafu

    - #### moveFirstVertex

          public GraphVertex moveFirstVertex()

      Description copied from interface: `Graph`
      Učiní první vrchol běžným. Je-li posloupnost vrcholů prázdná, následující isValidVertex () vrátí hodnotu false.
      Specified by:
        `moveFirstVertex` in interface `Graph`
      Returns:
        první vrchol grafu nebo null

    - #### moveFirstEdge

          public GraphEdge moveFirstEdge()

      Description copied from interface: `Graph`
      Učiní první hranu vrcholu běžnou. Je-li posloupnost hran prázdná, následující isValidEdge () vrátí hodnotu false.
      Specified by:
        `moveFirstEdge` in interface `Graph`
      Returns:
        první hrana vycházející z vrcholu nebo null

    - #### moveNextVertex

          public GraphVertex moveNextVertex()

      Běžným vrcholem učiní další vrchol v posloupnosti.
      Specified by:
        `moveNextVertex` in interface `Graph`
      Returns:
        nový běžný vrchol nebo null

    - #### moveNextEdge

          public GraphEdge moveNextEdge()

      Běžnou hranou učiní další hranu v posloupnosti.
      Specified by:
        `moveNextEdge` in interface `Graph`
      Returns:
        nová běžná hrana nebo null

    - #### isLastVertex

          public boolean isLastVertex()

      Description copied from interface: `Graph`
      Zjistí, zda je běžný vrchol poslední.
      Specified by:
        `isLastVertex` in interface `Graph`
      Returns:
        true když je poslední, jinak false

    - #### isLastEdge

          public boolean isLastEdge()

      Description copied from interface: `Graph`
      Zjistí, zda je běžná hrana poslední.
      Specified by:
        `isLastEdge` in interface `Graph`
      Returns:
        true když je poslední, jinak false

    - #### isValidVertex

          public boolean isValidVertex()

      Zjistí, zda Je běžný vrchol platný.

      Popis: Jestliže poslední operace moveFirstVertex nebo moveNextVertex byla úspěšná, je běžný vrchol platný, jinak je neplatný.

      Užití:Používá se k řízení cyklu.

      Specified by:
        `isValidVertex` in interface `Graph`
      Returns:
        true když je platný, jinak false

    - #### isValidEdge

          public boolean isValidEdge()

      Zjistí, zda Je běžná hrana platná.

      Popis: Jestliže poslední operace moveFirstEdge nebo moveNextEdge byla úspěšná, je běžný vrchol platný, jinak je neplatný.

      Užití:Používá se k řízení cyklu.

      Specified by:
        `isValidEdge` in interface `Graph`
      Returns:
        true když je platná, jinak false

    - #### traverse

          public void traverse()

      Description copied from interface: `Graph`
      Přejde po běžné hraně z výchozího do cílového vrcholu. Cílový vrchol se stane vrcholem běžným.
      Specified by:
        `traverse` in interface `Graph`

    - #### getVertex

          public GraphVertex getVertex()

      Description copied from interface: `Graph`
      Vrátí běžný vrchol nebo null.
      Specified by:
        `getVertex` in interface `Graph`
      Returns:
        běžný vrchol nebo null

    - #### getVertex

          public GraphVertex getVertex(GraphLatch aLatch)

      Description copied from interface: `Graph`
      Vrátí vrchol zachycený v aLatch.
      Specified by:
        `getVertex` in interface `Graph`
      Parameters:
        `aLatch` - zachycený stav procházení grafu
      Returns:
        zachycený vrchol

    - #### getEdge

          public GraphEdge getEdge()

      Description copied from interface: `Graph`
      Vrátí běžnou hranu nebo null.
      Specified by:
        `getEdge` in interface `Graph`
      Returns:
        běžnou hranu nebo null

    - #### setVertex

          public void setVertex(GraphVertex value)

      Description copied from interface: `Graph`
      Nastaví hodnotu běžného vrcholu.
      Specified by:
        `setVertex` in interface `Graph`
      Parameters:
        `value` - hodnota vrcholu

    - #### setEdge

          public void setEdge(GraphEdge value)

      Description copied from interface: `Graph`
      Nastaví hodnotu běžné hrany.
      Specified by:
        `setEdge` in interface `Graph`
      Parameters:
        `value` - hodnota hrany

    - #### latch

          public GraphLatch latch()

      Description copied from interface: `Graph`
      Zachytí běžný stav procházení grafu.
      Specified by:
        `latch` in interface `Graph`
      Returns:
        zachycený stav procházení grafu

    - #### restore

          public void restore(GraphLatch graphState)

      Description copied from interface: `Graph`
      Obnoví běžný stav procházení grafu.
      Specified by:
        `restore` in interface `Graph`
      Parameters:
        `graphState` - stav procházení, který má být obnoven

    - #### select

          public void select(GraphVertex aTarget)

      Description copied from interface: `Graph`
      Nastaví běžný stav procházení grafu na první hranu vrcholu aTarget.
      Specified by:
        `select` in interface `Graph`
      Parameters:
        `aTarget` - vrchol, který má být běžný