// Enumerated Mountain Rule
//
struct PathList;
// One item in a path
struct PathItem {
int indx; // Index into clones[]
struct PathItem *next; // Next PathItem in the list
struct PathList *links;
};
// One path
struct PathList {
struct PathItem *head;
struct PathItem *z;
};
// All the paths
struct PathCollection {
struct PathList *head;
struct PathList *z;
};
Hee hee! Lots of recursive data structures here! Isn't the PathList in PathItem a cute multi-dimensional treat?