Source code for hiperwalk.graph.line
from .integer_lattice import IntegerLattice
[docs]
def Line(num_vert, multiedges=None, weights=None, copy=False):
r"""
Finite line graph (path graph) constructor.
Parameters
----------
num_vert : int
The number of vertices on the line.
multiedges, weights: scipy.sparse.csr_array, default=None
See :ref:`graph_constructors`.
copy : bool, default=False
See :ref:`graph_constructors`.
Returns
-------
:class:`hiperwalk.Graph`
See :ref:`graph_constructors` for details.
See Also
--------
:ref:`graph_constructors`.
Notes
-----
The **order of neighbors** is
the neighbor to the right first,
followed by the neighbor to the left.
In other words, for any vertex :math:`v`,
the neighbors are given in the order :math:`[v + 1, v - 1]`.
.. testsetup::
import hiperwalk as hpw
.. doctest::
>>> g = hpw.Line(10)
>>> list(g.neighbors(0)) # 0 and 9 are not adjacent
[1]
>>> list(g.neighbors(1))
[2, 0]
>>> list(g.neighbors(8))
[9, 7]
>>> list(g.neighbors(9)) # 0 and 9 are not adjacent
[8]
"""
basis = [1, -1]
g = IntegerLattice(num_vert, basis=basis, periodic=False,
multiedges=multiedges, weights=weights,
copy=copy)
return g