#include "graph.h"
#include <stdlib.h>
struct s_graph
{
unsigned long color;
void* name;
list* con;
};
graph* graphCreate(const void* name)
{
graph* res = (graph*)malloc(sizeof(graph));
res->color = 0;
res->name = (void*)name;
res->con = listCreate();
return res;
}
void graphConnect(graph* src, const graph* dest)
{
/* check for double connections - could surely be optimized a bit */
listStart(src->con);
while (listNext(src->con))
{
if (listGet(src->con) == dest)
return;
}
/* check passed, so add that new connection */
listAdd(src->con, dest);
}
void graphColorNode(graph* src, unsigned long color)
{
src->color = color;
}
void graphNameNode(graph* src, const void* name)
{
src->name = (void*)name;
}
unsigned long graphGetColorNode(graph* src)
{
return src->color;
}
void* graphGetNameNode(graph* src)
{
return src->name;
}
list* graphGetConnections(graph* src)
{
return src->con;
}