← cproj

graph types

147553d7ab3ce61fd0f8e280eb73444c6d4b92e6 · ovidiucs · Sep 28, 2019 18:58

+57 · 2 files changed

  • graph/include/graph.h +10 −0
  • graph/src/main.c +47 −0
diff --git a/graph/include/graph.h b/graph/include/graph.h
new file mode 100644
index 0000000..4bcafc2
--- /dev/null
+++ b/graph/include/graph.h
@@ -0,0 +1,10 @@
+typedef struct {
+  char *n_name;
+  char *n_id;
+} Node;
+
+typedef struct {
+  char *e_name;
+  char *e_node_a;
+  char *e_node_b;
+} Edge;
diff --git a/graph/src/main.c b/graph/src/main.c
new file mode 100644
index 0000000..cf8c771
--- /dev/null
+++ b/graph/src/main.c
@@ -0,0 +1,47 @@
+#include <stdlib.h>
+
+#1. Define data strucutres
+
+typedef struct {
+	char *name;
+	Edge *edges[];
+	char *vendor;
+} Node;
+
+enum edgeType {
+	red,
+	blue,
+	green
+}
+
+typedef struct { 
+	enum edgeType color;
+	bool logical;
+		
+} Edge1;
+
+Edge1 example[] = {
+	red,"Link to r2";
+	blue,"link to r3";
+	red,1;
+}
+
+typedef struct {
+	char *name;
+	unsigned long speed;
+	unsigned int delay;
+	unsigned int cost;
+} Edge2;
+
+typedef struct {
+	int type;
+	Node *endpoint1;
+	Node *endpoint2;
+	char *rtrPortA;
+	char *rtrPortB;
+	union {	
+		Edge1 e1;	
+		Edge2 e2;	
+	} edgeVal;
+} Edge;
+