diff --git a/(p,t)_sparsification/graph.h b/(p,t)_sparsification/graph.h
new file mode 100644
index 0000000000000000000000000000000000000000..fc9c71f35f04222a2a09347acc3fe4bc0dad0d4a
--- /dev/null
+++ b/(p,t)_sparsification/graph.h
@@ -0,0 +1,36 @@
+//
+// Created by Kiouche on 1/20/2020.
+//
+
+#ifndef P_K_COMPRESSION_GRAPH_H
+#define P_K_COMPRESSION_GRAPH_H
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+
+
+
+
+
+namespace std{
+
+    typedef  unordered_map<uint32_t,unordered_map<int,unordered_set<uint32_t >>> node_neighbors; /// key 1 = node_id , key 2 = depth , value = nodes
+
+    typedef unordered_map<uint32_t , unordered_set<uint32_t >>  graph; /// adjacency matrix , key = node_id
+
+    typedef pair<uint32_t , uint32_t> edge;
+
+    vector<edge> get_edges(graph &g,bool directed);
+
+
+    bool is_it_undirected(graph &g);
+
+
+    unordered_set<uint32_t > intersection(unordered_set<uint32_t> &s1,unordered_set<uint32_t> &s2);
+
+
+}
+
+
+
+#endif //P_K_COMPRESSION_GRAPH_H