\contentsline {figure}{\numberline {7.1}{\ignorespaces Our first graph: the empty graph}}{22}
\contentsline {figure}{\numberline {7.2}{\ignorespaces Creating an undirected hypergraph}}{22}
\contentsline {figure}{\numberline {7.3}{\ignorespaces Computing the sum of two graphs}}{23}
\contentsline {figure}{\numberline {7.4}{\ignorespaces Adding Vertices One by One}}{24}
\contentsline {figure}{\numberline {7.5}{\ignorespaces Adding Ranges of Vertices}}{24}
\contentsline {figure}{\numberline {7.6}{\ignorespaces A Short Program to Add Vertices}}{25}
\contentsline {figure}{\numberline {8.1}{\ignorespaces Definition of sets and multisets}}{30}
\contentsline {figure}{\numberline {8.2}{\ignorespaces Definition of sequences}}{31}
\contentsline {figure}{\numberline {8.3}{\ignorespaces Conversions between collections and Scheme lists}}{32}
\contentsline {figure}{\numberline {8.4}{\ignorespaces Membership testing in collections}}{33}
\contentsline {figure}{\numberline {8.5}{\ignorespaces Example of overloaded method: null?}}{34}
\contentsline {figure}{\numberline {8.6}{\ignorespaces Defining generic functions which take collections as arguments}}{34}
\contentsline {figure}{\numberline {8.7}{\ignorespaces Comparing collections}}{35}
\contentsline {figure}{\numberline {8.8}{\ignorespaces The set primitive operations}}{36}
\contentsline {figure}{\numberline {8.9}{\ignorespaces $k$-sets and power sets of a set}}{37}
\contentsline {figure}{\numberline {8.10}{\ignorespaces Creating and manipulating vectors}}{38}
\contentsline {figure}{\numberline {8.11}{\ignorespaces Typed vs. untyped vectors}}{38}
\contentsline {figure}{\numberline {8.12}{\ignorespaces Conversion of typed vector to Scheme list}}{39}
\contentsline {figure}{\numberline {8.13}{\ignorespaces Copying of typed vectors}}{39}
\contentsline {figure}{\numberline {8.14}{\ignorespaces Comparison of typed vectors}}{40}
\contentsline {figure}{\numberline {9.1}{\ignorespaces Vertex neighbors}}{47}
\contentsline {figure}{\numberline {9.2}{\ignorespaces Vertex neighbors, directed graphs}}{56}
\contentsline {figure}{\numberline {9.3}{\ignorespaces Finding attributes}}{57}
\contentsline {figure}{\numberline {9.4}{\ignorespaces Manipulating attributes}}{57}
\contentsline {figure}{\numberline {9.5}{\ignorespaces Defining graph functions: $\Delta (g)$}}{58}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Makefile macros intended to be modified by the LINK library programmer.}}{61}
\contentsline {figure}{\numberline {2.3}{\ignorespaces An example wrapper routine}}{62}
\contentsline {figure}{\numberline {3.4}{\ignorespaces Depth-First Search}}{63}
\contentsline {figure}{\numberline {2.2}{\ignorespaces The {\em ElementOps}\ Class}}{66}
\contentsline {figure}{\numberline {2.3}{\ignorespaces Use of {\em Iterator}}}{69}
\contentsline {figure}{\numberline {2.4}{\ignorespaces {\em List}\ objects}}{70}
\contentsline {figure}{\numberline {2.5}{\ignorespaces {\em List}\ constructors}}{71}
\contentsline {figure}{\numberline {2.6}{\ignorespaces {\em List}\ and {\em SortedList}}}{75}
\contentsline {figure}{\numberline {2.7}{\ignorespaces Comparisons of {\em Containers}}}{76}
\contentsline {figure}{\numberline {2.8}{\ignorespaces {\em DList}}}{79}
\contentsline {figure}{\numberline {2.9}{\ignorespaces Special {\em DList}\ operations}}{80}
\contentsline {figure}{\numberline {2.10}{\ignorespaces Comparisons of {\em List}\ and {\em DList}}}{81}
\contentsline {figure}{\numberline {2.11}{\ignorespaces Iteration and {\em Array}\ objects}}{86}
\contentsline {figure}{\numberline {2.12}{\ignorespaces {\em Arrays}\ and {\em SortedArrays}}}{90}
\contentsline {figure}{\numberline {2.13}{\ignorespaces {\em BinaryHeap}}}{93}
\contentsline {figure}{\numberline {2.14}{\ignorespaces Another {\em BinaryHeap}\ example}}{94}
\contentsline {figure}{\numberline {2.15}{\ignorespaces {\em BinarySearchTree}}}{100}
\contentsline {figure}{\numberline {2.16}{\ignorespaces {\em RedBlackTree}}}{101}
\contentsline {figure}{\numberline {3.17}{\ignorespaces The {\em Collection}\ Hierarchy}}{102}
\contentsline {figure}{\numberline {3.18}{\ignorespaces Reference Counting in {\em Collections}}}{104}
\contentsline {figure}{\numberline {3.19}{\ignorespaces Reference Counting and Modifications in {\em Collections}}}{105}
\contentsline {figure}{\numberline {3.20}{\ignorespaces Passing and Returning Collection Objects}}{106}
\contentsline {figure}{\numberline {3.21}{\ignorespaces Comparisons Between {\em Collections}\ and {\em Containers}}}{107}
\contentsline {figure}{\numberline {3.22}{\ignorespaces Comparisons between {\em Collections}}}{108}
\contentsline {figure}{\numberline {3.23}{\ignorespaces The Set Primitive Operations}}{109}
\contentsline {figure}{\numberline {3.24}{\ignorespaces Set Primitives with Set and Sequence Operands }}{110}
\contentsline {figure}{\numberline {3.25}{\ignorespaces {\em MSetBase}\ and {\em MSet}}}{115}
\contentsline {figure}{\numberline {3.26}{\ignorespaces {\em Sequence}}}{123}
\contentsline {figure}{\numberline {3.27}{\ignorespaces Another {\em Sequence}\ Example}}{124}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Graph {\em Attributes}}}{131}
\contentsline {figure}{\numberline {2.3}{\ignorespaces ``Mixed'' Binary Graph}}{139}
\contentsline {figure}{\numberline {2.4}{\ignorespaces Directed Binary Graph}}{140}
\contentsline {figure}{\numberline {2.5}{\ignorespaces Directed Binary Multigraph}}{141}
\contentsline {figure}{\numberline {2.6}{\ignorespaces Undirected Binary Multigraph}}{142}
\contentsline {figure}{\numberline {2.7}{\ignorespaces Saving a LINK Graph}}{146}
\contentsline {figure}{\numberline {2.8}{\ignorespaces Loading a LINK Graph from Disk}}{147}
\contentsline {figure}{\numberline {2.9}{\ignorespaces Copying a Graph without its Attributes}}{148}
\contentsline {figure}{\numberline {3.10}{\ignorespaces The {\em Graph}Hierarchy}}{155}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Depth-First Search}}{157}
\contentsline {figure}{\numberline {1.1}{\ignorespaces The LINK Directory Structure}}{159}
