#ifndef __HYPER__
#define __HYPER__
 
struct DataLink {
	char *value;
             int len;
	struct DataLink *next;
};

struct DataA {
	char *value;
	struct DataLink *row;
	struct DataA *column;
};

typedef struct DataLink Data;

struct Graph {
	Data *Edge;
	Data *Path;
	char *content;
	int numEdge;
	int numPath;
	struct Graph *next;
};

struct GraphList {
	struct Graph gg;
	struct GraphList *next;	
	int no;
};

struct node {
	struct node *parent;
	struct node *neighbor;
	struct node *pointer;
	char *value;
	char *v1;
	char *v2;
};

struct tree {
	Data *node;
	Data *edge;
};

struct stack {
	Data *content;
	Data *top;
};

struct DataT {
	Data *edge;
	char *node1;
	char *node2;
};
 
struct Tree {
	DataT *node;	
};


struct treeList {
	struct tree tt;
	struct treeList *next;
	int no;
};

struct TreeList {
	struct node *tt;
	struct TreeList *next;
	int no;	
};

struct Connected_Component {
	Graph G;
	struct Connected_Component *next;
	int number;
};

typedef struct Connected_Component CComponent;

#endif
