ladanyi@63: #ifndef LOADER_H ladanyi@63: #define LOADER_H ladanyi@63: ladanyi@63: #include ladanyi@63: ladanyi@63: #define LINE_LEN 1024 ladanyi@63: ladanyi@63: template ladanyi@63: void LoadGraph(Graph &G, char *filename) { ladanyi@63: FILE *file; ladanyi@63: if ((file = fopen(filename, "r")) == NULL) { ladanyi@63: printf("Could not open %s\n", filename); ladanyi@63: return; ladanyi@63: } ladanyi@63: int i, n1, n2; ladanyi@63: std::map nmap; ladanyi@63: char line[LINE_LEN]; ladanyi@63: while (fgets(line, LINE_LEN, file)) { ladanyi@63: switch (line[0]) { ladanyi@63: case 'n': ladanyi@63: nmap[atoi(line + 1)] = G.addNode(); ladanyi@63: break; ladanyi@63: case 'a': ladanyi@63: n1 = atoi(line + 1); ladanyi@63: i = 1; ladanyi@63: while (isspace(line[i])) i++; ladanyi@63: while (isdigit(line[i])) i++; ladanyi@63: n2 = atoi(line + i); ladanyi@63: if (nmap.find(n1) == nmap.end()) { ladanyi@63: nmap[n1] = G.addNode(); ladanyi@63: } ladanyi@63: if (nmap.find(n2) == nmap.end()) { ladanyi@63: nmap[n2] = G.addNode(); ladanyi@63: } ladanyi@63: G.addEdge(nmap[n1], nmap[n2]); ladanyi@63: break; ladanyi@63: } ladanyi@63: } ladanyi@63: } ladanyi@63: ladanyi@63: #endif