# Standard graph reference

Edge

The `Edge` class is a class used for a graph construction in association with the `Vertex` class. An edge is used to connect vertices. Normally, an edge connects two vertices. The number of vertices attached to an edge is called the cardinality of that edge. A client object can also be attached to the class.

edge-p
Object
Edge
none

The `Edge` constructor create an empty edge.

Edge
Object

The `Edge` constructor create an edge with a client object.

reset
none
none

The `reset` method reset all vertices attached to the edge.

cardinality
Integer
none

The `cardinality` method returns the cardinality of the edge. The cardinality of an edge is the number of attached vertices.

add
Vertex
Vertex

The `add` method attach a vertex to this edge. The method return the argument vertex.

get
Vertex
Integer

The `get` method returns the attached vertex by index. If the index is out-of range, and exception is raised.

get-client
Object
none

The `get-client` method returns the edge client object. If the client object is not set, nil is returned.

set-client
Object
Object

The `set-client` method sets the edge client object. The object is returned by this method.

Vertex

The `Vertex` class is a class used for a graph construction in association with the `Edge` class. An vertex is an edge node. The number of edges referenced by a vertex is called the degree of that vertex. A client object can also be attached to the object.

vertex-p
Object
Vertex
none

The `Vertex` constructor create an empty vertex.

Vertex
Object

The `Vertex` constructor create a vertex with a client object.

reset
none
none

The `reset` method reset all edges attached to the vertex.

degree
Integer
none

The `degree` method returns the degree of the vertex. The degree of a vertex is the number of referenced edges.

add
Edge
Edge

The `add` method references an edge with this vertex. The method return the argument edge.

get
Edge
Integer

The `get` method returns the referenced edge by index. If the index is out-of range, and exception is raised.

get-client
Object
none

The `get-client` method returns the vertex client object. If the client object is not set, nil is returned.

set-client
Object
Object

The `set-client` method sets the vertex client object. The object is returned by this method.

Graph

The `Graph` object is a general graph class that manages a set of edges and vertices. The graph operates by adding edges and vertices to it. The graph object also accepts a client object in a way similar to the `Edge` and `Vertex` classes

graph-p
Object
Graph
none

The `Graph` constructor create an empty graph.

Graph
Object

The `Graph` constructor create a graph with a client object.

reset
none
none

The `reset` method reset the graph

reset-edges
none
none

The `reset-edges` method reset all edges attached to the graph.

reset-vertices
none
none

The `reset-vertices` method reset all vertices attached to the graph.

add
Object
Vertex|Edge

The `add` method adds a vertex or an edge to the graph. When adding an edge, the methods check that the source and target vertices are also part of the graph.

exists
Boolean
Vertex|Edge

The `exists` method returns true if the vertex or edge argument exists in the graph.

get-edge
Edge
Integer

The `get-edge` method returns an edge by index. If the index is out-of-range, an exception is raised.

get-vertex
Vertex
Integer

The `get-vertex` method returns a vertex by index. If the index is out-of-range, an exception is raised.

number-of-vertices
Integer
none

The `number-of-vertices` methods returns the number of vertices in the graph.

number-of-edges
Integer
none

The `number-of-edges` methods returns the number of edges in the graph.

get-client
Object
none

The `get-client` method returns the graph client object. If the client object is not set, nil is returned.

set-client
Object
Object

The `set-client` method sets the graph client object. The object is returned by this method.