A graph container is essentially an adjacency list graph representation [?? The Bad name comes from it being implemented with containers... ugh]
|:vertex-class → #||:directed-edge-class → #|
|:undirected-edge-class → #||:initial-size → #|
This is the root class for all graphs in CL-Graph.
A non associative container should implement at least empty-p,
Returns true if graph contains at least one directed edge. [?? Not sure if this is really keep up-to-date.]Accessors:contains-directed-edge-p.
Returns true if graph contains at least one undirected edge. [?? Not sure if this is really keep up-to-date.]Accessors:contains-undirected-edge-p.
The default edge class for the graph.Initargs::default-edge-class; Reader:default-edge-class.
The default edge type for the graph. This should be one of :undirected or :directed.Initargs::default-edge-type; Reader:default-edge-type.
The class used to create directed edges in the graph. This must extend the base-class for edges of the graph type and directed-edge-mixin. E.g., the directed-edge-class of a graph-container must extend graph-container-edge and directed-edge-mixin.Initform:(quote basic-directed-edge), Initargs::directed-edge-class; Reader:directed-edge-class.
|edge-key||Initform:(function identity), Initargs::edge-key; Reader:edge-key.|
|edge-test||Initform:(function eq), Initargs::edge-test; Reader:edge-test.|
|test||Initform:(function equal), Initargs::test.|
The class used to create undirected edges in the graph. This must extend the base-class for edges of the graph type. E.g., all edges of a graph-container must extend graph-container-edgeInitform:(quote basic-edge), Initargs::undirected-edge-class; Reader:undirected-edge-class.
The class of the vertexes in the graph. This must extend the base-class for vertexes of the graph type. E.g., all vertexes of a graph-container must extend graph-container-vertex.Initform:(quote basic-vertex), Initargs::vertex-class; Reader:vertex-class.
|vertex-key||Initform:(function identity), Initargs::vertex-key; Reader:vertex-key.|
|vertex-pair->edge||Initform:(make-container (quote simple-associative-container) test (function equal)); Reader:vertex-pair->edge.|
|vertex-test||Initform:(function eq), Initargs::vertex-test; Reader:vertex-test.|
Add-edge adds an existing edge to a graph. As
Delete all edges from `graph'. Returns the graph..
Returns the number of edges attached to
Removes all items from the container and returns nil.
Finds and returns an edge between value-or-vertex-1
Make-edge-container is called during graph creation
Make-vertex-container is called during graph
Adds an edge between two vertexes and returns it.
Adds a vertex to a graph. If called with a vertex,
Return true if vertex-1 and vertex-2 are connected
Returns true if there are any undirected cycles in
Sets the depth of
Returns the item in items with the 'best' value of function where
Returns a possibly filtered and possibly transformed list of the elements in a container. If the ...
Returns a possibly filtered and possibly transformed list
Add edges between vertexes in the new-graph for
Returns the number of connected-components of
Returns a union-find-container representing the
Returns true if graph is a connected graph and nil otherwise.
Finds an edge in the graph between the two
Deletes each item in the list from the container.
Remove a vertex from a graph. The 'vertex-or-value'
Returns the maximum depth of the vertexes in graph
Returns a list of the edges of
Returns the position of element in container using test and
Returns true if every item in the container satisfies the
Returns a list of sub-graphs of
Returns the first edge in
Returns a list of edges in
For now, compare find-item.
Find item in container using the container's test
Search 'graph' for a vertex with element
Returns the first vertex in
Returns a list of vertexes in
Ensures that the graph is undirected (possibly by
Returns a version of graph which is a directed free
Generates a description of
Returns a list of the roots of graph. A root is
Returns true if
Return true if-and-only-if an undirected cycle in
Returns true if this container type should rely on the default behavior of basic-initial-contents...
Adds item to the container
Adds each item in the list to the container in an
Adds item to the container unless it is already there
Adds each item in the sequence to the container in an
Returns true if thing knows how to iterate-nodes.
Applies function to each node in the container. If the container doesn't have nodes, then this is...
It should not usually necessary to call this in
Takes a GRAPH and a TEST-FN (a single argument
Creates a new vertex for graph
Returns a minimum spanning tree of graph if one exists and nil otherwise.
Returns the nth element in the container's 'natural' order.
Return the item that comes before item in the container. Only makes sense for sorted containers...
Prints the contents of container (using PRINT). Returns the container.
Creates the unimodal bipartite projects of
Removes items from a container that satisfy the test. The
Assign a number to each edge in a graph in some
Assign a number to each vertex in a graph in some
Hunt for the item in the container. Key and Test
Hunt for an item in the container that satisfies
Search 'graph' for a vertex with element
Returns the number of items currently in the container.
Returns the first item in the container for which predicate
Returns a new graph that is a subset of
Return the item that comes after item in the container. Only makes sense for sorted containers. R...
Returns a list of vertexes sorted by the depth from
Returns the number of vertexes in
Returns a list of the vertexes of