
/*
Copyright 2008 by Steven S. Skiena; all rights reserved. 
Permission is granted for use in non-commerical applications
provided this copyright notice remains intact and unchanged.

These programs all appear in my books:
"The Algorithm Design Manual (2nd Edition)"
by Steven Skiena, Springer-Verlag, New York 2008.
See my website www.algorist.com/

This book can be ordered from Amazon.com at
http://www.amazon.com/exec/obidos/ASIN/1848000693/thealgorithmrepo/

and 

"Programming Challenges: The Programming Contest Training Manual"
by Steven Skiena and Miguel Revilla, Springer-Verlag, New York 2003.
See our website www.programming-challenges.com for additional information.

This book can be ordered from Amazon.com at
http://www.amazon.com/exec/obidos/ASIN/0387001638/thealgorithmrepo/
*/


What follows are a list of all the files in this directory with a
brief description of what they are:


10055.c		/* program demonstrating standard IO in C */
10055.cc	/* program demonstrating standard IO in C++ */
10055.java	/* program demonstrating standard IO in Java */
10055.pascal	/* program demonstrating standard IO in Pascal */

8-queens.c	/* solve the eight queens problem using backtracking */

Makefile	/* instructions on how to compile all of our programs */

README		/* this file; a description of all programs in distribution */

annealing.c     /* a fairly generic implementation of simulated annealing */
annealing.h     /* header file for simulated annealing */

backtrack.c	/* a generic implementation of backtracking */
backtrack.h	/* header file for generic backtracking */

bfs-demo.c	/* driver program demonstrating breadth-first search */
bfs-dfs.c	/* a generic implementation of graph traversal */

biconnected.c   /* Identify articulation vertices in a graph */

bignum.c	/* implementation of large integer arithmetic */
binomial.c	/* compute the binomial coefficients using dynamic programming */

bipartite.c     /* Two color a bipartite graph */

bool.h		/* header file for boolean datatype */
cgtest.c	/* driver program for computational geometry routines */

component-graphs/   /* a directory with test files for connected components */

connected.c	/* compute connected components of a graph */

convex-hull.c	/* compute convex hulls of points in the plane */

datafiles/	/* a directory with test files for all the programs, see test-script */

dfs-demo.c	/* driver program demonstrating depth-first search */

dijkstra.c	/* compute shortest paths in weighted graphs */
distance.c	/* compute Euclidian distances */

editbrute.c	/* compute string edit distance *without* dynamic programming */
editdistance.c	/* a generic implementation of string comparison via dp */
editdistance.h	/* header file for string comparison */

elevator.c	/* elevator stop optimization via dynamic programming */
fib.c           /* Compute the binomial coefficients using dynamic programming
findcycle.c	/* identify a cycle in a graph, if one exists */
floyd.c		/* compute all-pairs shortest paths in weighted graphs */
gcd.c		/* compute the greatest common divisor of two integers */

geometry.c	/* basic geometric primitives and data types */
geometry.h	/* header file for geometric data types */
geotest.c	/* driver program for geometry routines */

graph.c		/* a generic adjacency list-in-array graph data type */
graph.h		/* header file for graph data type */

item.h          /* Header file for linked implementation */

kruskal.c       /* Compute minimum spanning trees of graphs via Kruskal's algorithm.

lcs.c		/* longest common subsequence of two strings */

list-demo.c     /* Driver for a linked list-based container implementation. */
list.h          /* Header file for linked implementation */

matrix.c        /* Multiply two matrices. */
mwt.c           /* Compute the minimum weight triangulation of convex polygons */


name.c		/* corporate name changing program -- string example */
netflow.c	/* network flow implementation -- augmenting path algorithm */

obsolete/       /* a directory with older versions of this programs */
original/       /* a directory with the original versions of this programs */
order.c		/* demonstrate traversal orders on a grid */
partition.c     /* Optimally balance partitions using dynamic programming */
paths.c         /* Enumerate the paths in a graph via backtracking */
permutations.c	/* construct all permutations via backtracking */
plates.c	/* compute the number of circles in two different packings */

polly.c		/* rank the desirability of suitors -- sorting example */
prim.c		/* compute minimum spanning trees of graphs via Prim's algorithm */
primes.c	/* compute the prime factorization of an integer */

priority_queue.c /* Implementation of a heap / priority queue abstract data type. */
priority_queue.h /* Header file for queue implementation */

queue.c		/* implementation of a FIFO queue abstract data type */
queue.h		/* header file for queue implementation */

random.c	/* compute random numbers within given ranges */
sentinel.c	/* example search program using sentinels */
set_union.c     /* Implementation of a heap / priority queue abstract data type. */
set_union.h     /* Header file for union-find data structure implementation */
sorting.c	/* implementations of primary sorting algorithms */
stack.c         /* Implementation of a LIFO stack abstract data type. */
stack.h         /* Header file for queue implementation */



stringedit.c	/* compute the optimal alignment matching two strings */
strong.c        /* Identify strongly connected components in a graph */
subsets.c	/* construct all subsets via backtracking */

substringedit.c	/* approximately match one string as a substring of another */
sudoku.c        /* A backtracking program to solve Seduku */
sudoku-examples/    /* a directory with test files for sudoku */
superman.c	/* compute Superman's flight path -- geometry example */

test-script*	/* run tests on each of the programs created by Makefile */

topsort1.c      /* Topologically sort a directed acyclic graph by DFS numbering (DAG) */
topsort.c	/* topologically sort a directed acyclic graph */

tree-demo.c     /* Driver for a binary search tree container implementation. */
tree.h          /* Header file for binary search tree implementation */

triangulate.c	/* triangulate a polygon via ear-clipping, and compute area */

tsp.c           /* Heuristics for solving TSP */
tsp.h           /* Header file for tsp */
tsp-examples/   /* a directory with test files for the traveling salesmen */

war.c		/* simulation of the children's card game War */

wgraph.c	/* a generic weighted graph data type */
wgraph.h	/* header file for weighted graph type */

