diff --git a/queue.c b/queue.c
index 8ddd1279986ee5092a55544887e4e36335b09bc1..ac0ca09703f32b620631adedcd154e83a2a04ca9 100644
--- a/queue.c
+++ b/queue.c
@@ -4,3 +4,13 @@ bool is_empty(queue q){
 	return (q.tail<0);
 }
 
+int queue_dequeue(queue *fa) {
+    int val;
+    if (!queue_is_empty(*fa)) {
+        element *e = fa->head;
+        val = e->data;
+        fa->head = e->next;
+        free(e);
+    }
+    return val;
+}