## Class Dot-Graph

### Part of:

package cl-graph, class graph-container, class dot-graph-mixin

### Default initargs

:vertex-class → #:directed-edge-class → #
:undirected-edge-class → #:initial-size → #

### Direct Superclass

dot-graph-mixin A graph container is essentially an adjacency list graph representation [?? The Bad name comes fr...

### Slot

%operate-after-finding Add-edge adds an existing edge to a graph. As add-edge-between-vertexes is generally more natur... Adds an edge between two vertexes and returns it. If force-new? is true, the edge is added even i... Adds a vertex to a graph. If called with a vertex, then this vertex is added. If called with a ... Return true if vertex-1 and vertex-2 are connected by an edge. [?? compare with vertices-share-... Returns true if there are any undirected cycles in `graph`. Sets the depth of `vertex` to level and then recursively sets the depth of all of the children ... Returns the item in items with the 'best' value of function where'best' is determined by test. Y... Returns a possibly filtered and possibly transformed list of the elements in a container. If the ... Returns a possibly filtered and possibly transformed list of the nodes in a container. If the con... Add edges between vertexes in the new-graph for which the matching vertexes in the old-graph ha... Returns the number of connected-components of graph. Returns a union-find-container representing the connected-components of `graph`. Returns true if graph is a connected graph and nil otherwise. Delete all edges from `graph'. Returns the graph.. Delete the `edge' from the `graph' and returns it. Finds an edge in the graph between the two specified vertexes. If values (i.e., non-vertexes) a... Deletes each item in the list from the container. Remove a vertex from a graph. The 'vertex-or-value'argument can be a vertex of the graph or a 'v... Returns the maximum depth of the vertexes in graph assuming that the roots are of depth 0 and t... Returns the number of edges attached to `vertex`. Compare with the more flexible `vertex-degree... Returns a list of the edges of `thing`. Returns the position of element in container using test and key to match. Key defaults to identit... Removes all items from the container and returns nil. Returns true if every item in the container satisfies the predicate. Predicate should be a funct... Returns a list of sub-graphs of `graph` where each sub-graph is a different connected component... Search `graph` for an edge whose vertexes match `edge`. This means that `vertex-1` of the edge ... Searches `graph` for an edge that connects vertex-1 and vertex-2. [?? Ignores error-if-not-fou... Finds and returns an edge between value-or-vertex-1 and value-or-vertex-2 if one exists. Unless... Returns the first edge in `thing` for which the `predicate` function returns non-nil. If the `k... Returns a list of edges in `thing` for which the `predicate` returns non-nil. [?? why no key fu... For now, compare find-item. Find item in container using the container's test method for comparisons. The test method must ta... Search 'graph' for a vertex with element 'value'. The search is fast but inflexible because it ... Returns the first vertex in `thing` for which the `predicate` function returns non-nil. If the ... Returns a list of vertexes in `thing` for which the `predicate` returns non-nil. [?? why no key f... Ensures that the graph is undirected (possibly by calling change-class on the edges). Returns a version of graph which is a directed free tree rooted at root. Generates a description of `graph` in DOT file format. The formatting can be altered using `gr... Unless a different graph-formatter is specified, this method is called by graph->dot to output ... Returns a list of the roots of graph. A root is defined as a vertex with no source edges (i.e.,... Returns true if `start-vertex` is in some cycle in `graph`. This uses child-vertexes to generat... Return true if-and-only-if an undirected cycle in graph is reachable from start-vertex. 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 upspecified order. Adds item to the container unless it is already there Adds each item in the sequence to the container in an upspecified order. Returns true if thing knows how to iterate-nodes. Calls `fn` on each edge of graph or vertex. Applies function to each node in the container. If the container doesn't have nodes, then this is... Calls `fn` on each of the vertexes of `thing`. Make-edge-container is called during graph creation and can be used to create specialized conta... It should not usually necessary to call this in user code. Creates a new edge between vertex-1 ... Takes a GRAPH and a TEST-FN (a single argument function returning NIL or non-NIL), and filters th... Make-vertex-container is called during graph creation and can be used to create specialized con... Creates a new vertex for graph `graph`. The keyword arguments include: * vertex-class : specif... 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 existing-graph with vertexes for each vertex of existi... Removes items from a container that satisfy the test. The container is returned. Assign a number to each edge in a graph in some unspecified order. [?? internal] Assign a number to each vertex in a graph in some unspecified order. [?? internal] Replace vertex `old` in graph `graph` with vertex `new`. The edge structure of the graph is mai... Hunt for the item in the container. Key and Test are as in member. Hunt for an item in the container that satisfies the predicate. Key is as in count-if. Search 'graph' for a vertex with element 'value'. The 'key' function is applied to each element... Returns the number of items currently in the container. Returns the first item in the container for which predicate holds. Predicate should be a function... Returns a new graph that is a subset of `graph`that contains `vertex` and all of the other verte... Return the item that comes after item in the container. Only makes sense for sorted containers. R... Sets the `tag` of all the edges of `thing` to true. [?? why does this exist?] Returns a list of vertexes sorted by the depth from the roots of the graph. See also assign-lev... WIP Sets the `tag` of all the edges of `thing` to nil. [?? why does this exist?] Returns the number of vertexes in `graph`. [?? could be a defun] Returns a list of the vertexes of `thing`.