This class is used to represent edges in the graph.
This class is used to represent nodes in the graph.
This class is used to represent tokens in the graph.
Add an edge to the graph.
Add an edge to the graph.
the edge to add
Add a free token to the graph.
Add a free token to the graph.
the free token to add
Add a node to the graph.
Add a node to the graph.
the node to add
List of edges in the graph
Show the flaw by printing the error message.
Show the flaw by printing the error message.
the method where the error occurred
the error message
List of free tokens in the graph (bound tokens must be in a nodes or edges list)
Get all the root nodes (those with no incoming edges).
List of nodes in the graph
Remove an edge from the graph.
Remove an edge from the graph.
the edge to remove
Remove a free token from the graph.
Remove a free token from the graph.
the free token to remove
Remove a node from the graph.
Remove a node from the graph.
the node to remove
Recursively visit all nodes in the graph.
Recursively visit all nodes in the graph.
the current node
the recursion level
Traverse the graph printing out its nodes and showing connectivity by indentation.
The
Dgraph
class is for defining graph structures suitable for animation. Graphs consist of nodes, edges and tokens. Tokens can be positioned within nodes or on edges. A graph animation class that uses this class would typically move the tokens by changing there location over time. This class supports both directed graphs and bipartite graphs. Directed graphs contain only primary nodes, while bipartite graphs have both primary and secondary nodes along with the rule that edges must go from primaries to secondaries or secondaries to primaries. Bipartite graphs can be used to represent Petri Nets by letting Transitions be primary nodes and Places be secondary nodes. Everything can be labeled (nodes, edges and tokens as well as the graph itself). Nodes and edges may be added to/removed from graphs, while tokens may be added to/removed from either nodes or edges. Tokens may also be free (not bound to nodes or edges).