FSU Graph Framework*
The fsu Graph Framework consists of a number of classes, utility functions, and
test harnesses. The following is a brief description of the files and
their contents.
|
Filename | Contents |
graph.h |
Class templates ALUGraph, ALDGraph. These implement adjacency list
representations for undirected and directed graphs, respectively. |
bfsurvey.h |
Class template BFSurvey. This class implements breadth-first survey as described in
lecture notes. Important engineering details are implemented that are not
discussed in the class notes. |
dfsurvey.h |
Class template DFSurvey. This class implements depth-first survey as described in
lecture notes. Important engineering details are implemented that are not
discussed in the class notes. |
graph_util.h |
A number of stand-alone functions assisting clients of the graph classes,
including Load, Save, OutDegreeSequence, OutDegreeFrequencyDistribution, ComponentRankSequence, ShowAL, Path_BFS, Path_DFS,
CheckSymmetry, and IsBipartite, along with several
functions specifically supporting the test harnesses. |
survey_util.h |
Stand-alone functions primarily supporting the test harnesses for graph
surveys. Includes Levelorder, Preorder, Postorder, and WriteData. |
topsort.h |
Function template TopSort implementing the Knuth topological sort
algorithm. |
fgraph.cpp |
Client test harness for graph class templates. Arguments: (1) graph file
(req), (2) log file (opt)
Functions Used/Tested: (1) UnGraph and Digraph API, (2) Topological Sort
|
agraph.cpp |
Graph analysis client of graph classes and Partition. Arguments: (1) graph file
(req), (2) component sizes to display (req), (3) degree sequence to display
(opt - defaults to (2))
Functions Used/Tested: (1) Load(file,g), (2) IsBipartite(g,color), (3) ComponentRankSequence(g),
(4) OutDegreeFrequencyDistribution(g), (5) OutDegreeSequence(g)
|
fbfsurvey.cpp |
Client test harness for BFSurvey class template. Can be configured for either
undirected or directed graphs. Arguments (all req): (1) graph file, (2) 'f'/'s' (full
or single search), (3) start vertex number, (4) 1/0 (trace/no-trace). |
fdfsurvey.cpp |
Client test harness for DFSurvey class template. Can be configured for either
undirected or directed graphs. Arguments (all req): (1) graph file, (2) 'f'/'s' (full
or single search), (3) start vertex number, (4) 1/0 (trace/no-trace). |
fpath.cpp |
Client test harness for Load, Path_BFS and Path_DFS. Reads graph file and
displays BFS and DFS paths from x to y. Does both undirected and directed graphs. Arguments (all
req): (1) graph file, (2) from vertex, (3) to vertex. |
fsymm.cpp |
Digraph symmetry checker. Arguments: (1) graph file (req), (2) verbose flag (opt). |
ftopsort.cpp |
Client test harness for TopSort function template. Argument: (1) graph file (req) |
rangraph.cpp |
Random graph generator. Arguments: (1) graph file name (req), (2)
vertex size (req), (3) edge size (req), (4) length of tail to display (opt) |
rangraph_ER.cpp |
Random Erdos_Renyi graph generator. Arguments: (1) graph file name (req), (2)
vertex size (req), (3) expected vertex degree (req), (4) length of tail to display (opt) |
Partition Framework |
partition?.h |
Class template Partition. Support for Union-Find algorithms. Two
different implementatons (? = 1,2) with same API. |
partition_util.h |
Function template RankComponentsBySize computes sizes of components and
lists them ranked by decreasing size. |
fpartition?.cpp |
Test harnesses for the two implementations of Partition. |
Maze Apps |
maze_util.h |
Functions supporting the study of mazes using the graph framework,
including LoadMaze and Maze2Graph |
solvemaze.cpp |
Client test harness for Path_DFS, CheckSymmetry, and LoadMaze. Reads maze
file, checks for consistency, solves the maze, and
appends solution in maze file with ".dfs" extension.
Argument: (1) maze file (req). |
maze2graph.cpp |
Client test harness for Maze2Graph. Reads maze file,
writes graph file containing directed graph model of maze.
Graph file same as maze filename with ".dg" extension.
Arguments: (1) maze file (req), (2) 1/0 (directed/undirected) (optional -
default is directed) |
printmaze.x |
Executable. Creates postscript file from maze file (with solution). Useful
to print graphics and to include graphics in pdf documents.
Use with file redirect, and be sure to write to a file with ".ps"
extension. (Written by Bret Whissel.)
|
ps2png.sh |
Executable. Converts postscript file to png file for visual
display. Assumes "$1.ps" and writes "$1.png".
Argument: (1) .ps filename without ".ps" extension (req) |
mazemaster.x |
Executable. Menu-driven maze analysis tool. Argument: command file (optional) |