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 → # |
| basic-graph | This is the root class for all graphs in CL-Graph. |
|---|---|
| container-uses-nodes-mixin | |
| initial-contents-mixin | |
| iteratable-container-mixin | |
| non-associative-container-mixin | A non associative container should implement at least empty-p, |
| dot-graph |
|---|
| contains-directed-edge-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. |
|---|---|
| contains-undirected-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. |
| default-edge-class | The default edge class for the graph. Initargs::default-edge-class; Reader:default-edge-class. |
| default-edge-type | The default edge type for the graph. This should be one of :undirected or :directed. Initargs::default-edge-type; Reader:default-edge-type. |
| directed-edge-class | 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. |
| graph-edges | Initargs::graph-edges; Reader:graph-edges. |
| graph-vertexes | Initargs::graph-vertexes; Reader:graph-vertexes. |
| largest-edge-id | Initform:0; Reader:largest-edge-id. |
| largest-vertex-id | Initform:0; Reader:largest-vertex-id. |
| test | Initform:(function equal), Initargs::test. |
| undirected-edge-class | 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-edge Initform:(quote basic-edge), Initargs::undirected-edge-class; Reader:undirected-edge-class. |
| vertex-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 | Add-edge adds an existing edge to a graph. As |
|---|---|
| delete-all-edges | Delete all edges from `graph'. Returns the graph.. |
| delete-edge | Delete the |
| dfs-visit | |
| edge-count | Returns the number of edges attached to |
| empty! | Removes all items from the container and returns nil. |
| find-edge | Search |
| find-edge-between-vertexes | Searches |
| find-edge-between-vertexes-if | Finds and returns an edge between value-or-vertex-1 |
| iterate-edges | Calls |
| make-edge-container | Make-edge-container is called during graph creation |
| make-node-for-container | |
| make-vertex-container | Make-vertex-container is called during graph |
| %operate-after-finding | |
|---|---|
| add-edge-between-vertexes | Adds an edge between two vertexes and returns it. |
| add-edges-to-graph | |
| add-initial-contents | |
| add-vertex | Adds a vertex to a graph. If called with a vertex, |
| adjacentp | Return true if vertex-1 and vertex-2 are connected |
| any-undirected-cycle-p | Returns true if there are any undirected cycles in |
| assign-level | Sets the depth of |
| best-item | Returns the item in items with the 'best' value of function where |
| breadth-first-search-graph | |
| breadth-first-visitor | |
| collect-elements | Returns a possibly filtered and possibly transformed list of the elements in a container. If the ... |
| collect-elements-stably | |
| collect-nodes | Returns a possibly filtered and possibly transformed list |
| complete-links | Add edges between vertexes in the new-graph for |
| connected-component-count | Returns the number of connected-components of |
| connected-components | Returns a union-find-container representing the |
| connected-graph-p | Returns true if graph is a connected graph and nil otherwise. |
| count-elements | |
| count-elements-if | |
| count-items | |
| delete-edge-between-vertexes | Finds an edge in the graph between the two |
| delete-element | |
| delete-item | |
| delete-item-if | |
| delete-list | Deletes each item in the list from the container. |
| delete-vertex | Remove a vertex from a graph. The 'vertex-or-value' |
| depth | Returns the maximum depth of the vertexes in graph |
| dfs | |
| edges | Returns a list of the edges of |
| element-position | Returns the position of element in container using test and |
| every-element-p | |
| every-item-p | Returns true if every item in the container satisfies the |
| find-connected-components | Returns a list of sub-graphs of |
| find-edge-if | Returns the first edge in |
| find-edges-if | Returns a list of edges in |
| find-element | For now, compare find-item. |
| find-item | Find item in container using the container's test |
| find-vertex | Search 'graph' for a vertex with element |
| find-vertex-if | Returns the first vertex in |
| find-vertexes-if | Returns a list of vertexes in |
| first-element | |
| force-undirected | Ensures that the graph is undirected (possibly by |
| generate-directed-free-tree | Returns a version of graph which is a directed free |
| graph->dot | Generates a description of |
| graph->dot-external | |
| graph-roots | Returns a list of the roots of graph. A root is |
| in-cycle-p | Returns true if |
| in-undirected-cycle-p | Return true if-and-only-if an undirected cycle in |
| initialize-vertex-data | |
| insert-initial-contents-p | Returns true if this container type should rely on the default behavior of basic-initial-contents... |
| insert-item | Adds item to the container |
| insert-list | Adds each item in the list to the container in an |
| insert-new-item | Adds item to the container unless it is already there |
| insert-sequence | Adds each item in the sequence to the container in an |
| iteratable-p | Returns true if thing knows how to iterate-nodes. |
| iterate-elements | |
| iterate-nodes | Applies function to each node in the container. If the container doesn't have nodes, then this is... |
| iterate-vertexes | Calls |
| make-edge-for-graph | It should not usually necessary to call this in |
| make-filtered-graph | Takes a GRAPH and a TEST-FN (a single argument |
| make-vertex-for-graph | Creates a new vertex for graph |
| map-over-all-combinations-of-k-edges | |
| map-over-all-combinations-of-k-vertexes | |
| minimum-spanning-tree | Returns a minimum spanning tree of graph if one exists and nil otherwise. |
| nth-element | Returns the nth element in the container's 'natural' order. |
| predecessor | Return the item that comes before item in the container. Only makes sense for sorted containers... |
| print-container | Prints the contents of container (using PRINT). Returns the container. |
| project-bipartite-graph | Creates the unimodal bipartite projects of |
| reduce-container | |
| reduce-elements | |
| reduce-nodes | |
| remove-items-if | Removes items from a container that satisfy the test. The |
| renumber-edges | Assign a number to each edge in a graph in some |
| renumber-vertexes | Assign a number to each vertex in a graph in some |
| replace-vertex | Replace vertex |
| search-for-element | |
| search-for-item | Hunt for the item in the container. Key and Test |
| search-for-match | Hunt for an item in the container that satisfies |
| search-for-matching-node | |
| search-for-node | |
| search-for-node* | |
| search-for-vertex | Search 'graph' for a vertex with element |
| setffirst-element | |
| size | Returns the number of items currently in the container. |
| some-element-p | |
| some-item-p | Returns the first item in the container for which predicate |
| subgraph-containing | Returns a new graph that is a subset of |
| successor | Return the item that comes after item in the container. Only makes sense for sorted containers. R... |
| tag-all-edges | Sets the |
| topological-sort | Returns a list of vertexes sorted by the depth from |
| traverse-elements | WIP |
| unique-elements | |
| unique-nodes | |
| untag-all-edges | Sets the |
| vertex-count | Returns the number of vertexes in |
| vertexes | Returns a list of the vertexes of |