GraphsDoc.tioga
Mike Spreitzer August 21, 1986 5:41:57 pm PDT
Graphs
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
Graphs
Mike Spreitzer
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: This package defines an object-oriented representation of graphs, and provides a general-purpose browser.
Created by: Mike Spreitzer
Maintained by: Mike Spreitzer <Spreitzer.pa>
Keywords: Graph, Tree, Directed, DiGraph, DAG, Network, Navigate, Traverse, Neighbor, Vertex, Edge, Link, Node, Browse, Object-Oriented
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Graphs.Mesa
This interface defines an abstract data-type for graphs. A graph has a set of vertices, and edges between the vertices. The edges may or may not be directed. The edges and the vertices may or may not be labelled; if they are, the labels are ROPEs. Other interfaces may be defined with a richer structure, built on top of these graphs.
The implementor of a graph vertex uses the `rep' and `class' fields. A client of a graph may put data of his own on a vertex via the `other' field.
The structure of a graph is revealed through the class procedures of the vertices of the graph. Some of the class procedures can be derived from others. The class has slots for the derivatives because they can sometimes be computed more cheaply than by the obvious derivation from the basic procedures. An implementor of a class of vertex that can compute the derivatives more cheaply should provide them. An implementor of a class that cannot compute the derivatives more cheaply need not provide them. Clients can call the procedures in this interface, rather than calling the class procedures directly. The procedures in this interface will derive themselves from the provided class procedures in the most efficient way. On the other hand, if a client is interested in some derivative procedure that has not been provided for in this interface, it must be synthesized by the client from the procedures in the vertex class and the procedures in this interface.
2. GraphOps.Mesa
This interface is where operations on abstract graphs go. So far, there is only one: ranking.