aboutsummaryrefslogtreecommitdiff
path: root/sem1/algo/workshop2/dfs/dfs.c
diff options
context:
space:
mode:
authorJulian T <julian@jtle.dk>2020-02-11 12:24:56 +0100
committerJulian T <julian@jtle.dk>2020-02-11 12:24:56 +0100
commit6db1a2cdd3b96731f2e092d55d8c2136eabc52d0 (patch)
tree2be8fae8ce82d708ed9f00f376dda14420850e80 /sem1/algo/workshop2/dfs/dfs.c
parent57305119e05559c1c37e903aef89cd43f44c42c9 (diff)
Rename and cleanup
Diffstat (limited to 'sem1/algo/workshop2/dfs/dfs.c')
-rw-r--r--sem1/algo/workshop2/dfs/dfs.c107
1 files changed, 0 insertions, 107 deletions
diff --git a/sem1/algo/workshop2/dfs/dfs.c b/sem1/algo/workshop2/dfs/dfs.c
deleted file mode 100644
index 1244895..0000000
--- a/sem1/algo/workshop2/dfs/dfs.c
+++ /dev/null
@@ -1,107 +0,0 @@
-#include <stdio.h>
-#include <stdbool.h>
-#include <time.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "graph.h"
-
-graph_t g;
-graph_t newg;
-int step;
-
-void dfs_visit(graph_t *g, vertex_t *u, bool doprint) {
- if( doprint ) {
- printf("dfs_visit( %s )\n", u->ref);
- }
- step++;
- u->dtime = step;
- u->color = COLOR_GRAY;
-
- // For every adj
- edge_t *e = u->adj;
- while( e ) {
- vertex_t *v = e->to;
- if( v->color == COLOR_WHITE ) {
- graph_edge(&newg, v->ref, u->ref, 1);
- dfs_visit(g, v, doprint);
- }
- e = e->next;
- }
-
- u->color = COLOR_BLACK;
- step++;
- u->ftime = step;
-}
-
-
-void dfs(graph_t *g, bool doprint) {
- step = 0;
-
- // For every edge
- vertex_t *u = vertex_next(g, NULL);
- while( u ) {
- if( u->color == COLOR_WHITE ) {
- dfs_visit(g, u, doprint);
- }
- u = vertex_next(g, u);
- }
-}
-
-#define BENCH 9999
-
-int main() {
-
- // benchmark
-
- // Start by generating
- for(int i = 0; i < BENCH; i++) {
- char from[5];
- char to[5];
- sprintf(from, "%d", i);
- sprintf(to, "%d", rand() % BENCH);
- graph_edge(&g, from, to, 1);
- }
- FILE *f = fopen("hej.dot", "w");
- graph_to_dot(f, &g);
-
- {
- // Timing start
- clock_t t;
- t = clock();
-
- dfs(&g, true);
-
- // Timing stop
- t = clock() - t;
- double time_taken = ((double)t)/CLOCKS_PER_SEC; // in seconds
- printf("Dfs took %f seconds\n", time_taken);
- }
-
- return 0;
-
- graph_edge(&g, "hej", "med", 1);
- graph_edge(&g, "med", "dig", 1);
- graph_edge(&g, "dig", "hvordan", 1);
-
- graph_edge(&g, "det", "hvordan", 1);
- graph_edge(&g, "hvordan", "det", 1);
-
- graph_to_dot(stdout, &g);
-
- // Timing start
- clock_t t;
- t = clock();
-
- // Dfs slower when printing.
- dfs(&g, true);
-
- // Timing stop
- t = clock() - t;
- double time_taken = ((double)t)/CLOCKS_PER_SEC; // in seconds
- printf("Dfs took %f seconds\n", time_taken);
-
- //graph_to_dot(stdout, &newg);
-
- return 0;
-}