Class Graph-Container-Vertex

A graph container vertex keeps track of its edges in the the vertex-edges slot. The storage for this defaults to a vector-container but can be changed using the vertex-edges-container-class initarg.

Part of:

class tinaa-part-vertex, class tinaa-vertex, package cl-graph, class basic-vertex, class dot-vertex

Default initargs

:vertex-edges-container-class → #

Direct Superclass

basic-vertex

This is the root class for all vertexes in CL-Graph.

Direct Subclass

dot-vertex

Slot

color
The `color` is used by some algorithms for bookkeeping. [?? Should probably be in a mixin]
Initargs::color; Accessors:color.
depth-level
`Depth-level` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initform:0, Initargs::depth-level; Accessors:depth-level; Type:number.
discovery-time
`Discovery-time` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initform:-1, Initargs::discovery-time; Accessors:discovery-time.
elementInitargs::element,:value; Accessors:element, value.
finish-time
`Finish-time` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initform:-1, Initargs::finish-time; Accessors:finish-time.
graph
The `graph` of which this edge is a part.
Initargs::graph; Reader:graph.
next-node
`Next-node` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initargs::next-node; Accessors:next-node.
previous-node
`Previous-node` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initargs::previous-node; Accessors:previous-node.
rank
The `rank` is used by some algorithms for bookkeeping. [?? Should be in a mixin]
Initargs::rank; Accessors:rank.
tag
The `tag` is used by some algorithms for bookkeeping. [?? Should probably be in a mixin]
Initargs::tag; Accessors:tag.
vertex-edgesReader:vertex-edges.
vertex-id
`Vertex-id` is used internally to keep track of vertexes.
Initform:0, Initargs::vertex-id; Reader:vertex-id.

Direct Method

add-edge-to-vertex

Attaches the edge edge to the vertex vertex.

find-edge-between-vertexes

Searches graph for an edge that connects vertex-1
and vertex-2. [?? Ignores error-if-not-fou...

find-edge-between-vertexes-if

Finds and returns an edge between value-or-vertex-1
and value-or-vertex-2 if one exists. Unless...

has-children-p

In a directed graph, returns true if vertex has any
edges that point from vertex to some other
...

has-parent-p

In a directed graph, returns true if vertex has any
edges that point from some other vertex to ...

iterate-children

Calls fn on every child of node.

iterate-edges

Calls fn on each edge of graph or vertex.

iterate-neighbors

Calls fn on every vertex adjecent to vertex See
also iterate-children and iterate-parents.

iterate-parents

Calls fn on every vertex that is either connected
to vertex by an undirected edge or is at the ...

iterate-source-edges

In a directed graph, calls fn on each edge of a
vertex that begins at vertex. In an undirecte...

iterate-target-edges

In a directed graph, calls fn on each edge of a
vertex that ends at vertex. In an undirected ...

make-vertex-edges-container

Called during the initialization of a vertex to
create the create the container used to store t...

other-vertex

Assuming that the value-or-vertex corresponds to
one of the vertexes for edge, this method re...

vertices-share-edge-p

Return true if vertex-1 and vertex-2 are connected
by an edge. [?? Compare adjacentp]

Other Method

add-edge-between-vertexes

Adds an edge between two vertexes and returns it.
If force-new? is true, the edge is added even i...

add-vertex

Adds a vertex to a graph. If called with a vertex,
then this vertex is added. If called with a ...

adjacentp

Return true if vertex-1 and vertex-2 are connected
by an edge. [?? compare with vertices-share-...

assign-level

Sets the depth of vertex to level and then
recursively sets the depth of all of the children ...

breadth-first-search-graph
breadth-first-visitor
delete-vertex

Remove a vertex from a graph. The 'vertex-or-value'
argument can be a vertex of the graph or a 'v...

dfs
dfs-visit
edge-count

Returns the number of edges attached to
vertex. Compare with the more flexible `vertex-degree...

edges

Returns a list of the edges of thing.

find-vertex

Search 'graph' for a vertex with element
'value'. The search is fast but inflexible because it ...

in-cycle-p

Returns true if start-vertex is in some cycle in
graph. This uses child-vertexes to generat...

in-undirected-cycle-p

Return true if-and-only-if an undirected cycle in
graph is reachable from start-vertex.

make-edge-for-graph

It should not usually necessary to call this in
user code. Creates a new edge between vertex-1 ...

map-over-all-combinations-of-k-edges
mst-find-set
mst-link
mst-make-set
mst-tree-union
out-edge-for-vertex-p

Returns true if the edge is connected to vertex and
is either an undirected edge or a directed ...

replace-vertex

Replace vertex old in graph graph with vertex
new. The edge structure of the graph is mai...

rootp

Returns true if vertex is a root vertex (i.e.,
it has no incoming (source) edges).

search-for-node
search-for-node*
search-for-vertex

Search 'graph' for a vertex with element
'value'. The 'key' function is applied to each element...

setfelement
source-edge-count

Returns the number of source edges of
vertex (cf. source-edges). [?? could be a defun]

source-edges

Returns a list of the source edges of
vertex. I.e., the edges that begin at vertex.

subgraph-containing

Returns a new graph that is a subset of graph
that contains vertex and all of the other verte...

tag-all-edges

Sets the tag of all the edges of thing to
true. [?? why does this exist?]

target-edge-count

Returns the number of target edges of
vertex (cf. target-edges). [?? could be a defun]

target-edges

Returns a list of the target edges of vertex.
I.e., the edges that end at vertex.

traverse-elements-helper

WIP

untag-all-edges

Sets the tag of all the edges of thing to nil.
[?? why does this exist?]

vertex->dot

Unless a different vertex-formatter is specified
with a keyword argument, this is used by graph...