procedure read_graph: read graph procedure write_graph: write graph procedure closure: transitive closure of graph
link graphpak
May 2, 2001; Ralph E. Griswold
This file is in the public domain.
The procedures here use sets to represent directed graphs. See The Icon Programming Language, second edition, pp. 195-198. A value of type "graph" has two components: a list of nodes and a two-way lookup table. The nodes in turn contain pointers to other nodes. The two-way table maps a node to its name and vice-versa. Graph specifications are give in files in which the first line is a white-space separated list of node names and subsequent lines give the arcs, as in Tucson Phoenix Bisbee Douglas Flagstaff Tucson->Phoenix Tucson->Bisbee Bisbee->Bisbee Bisbee->Douglas Douglas->Phoenix Douglas->Tucson