I can't figure it out, this is what I have so far.
But the function Enqueue() is not changing the Head & Tail objects from the main method. 
How do I do this?
#include <stdio.h>
typedef struct queuenode{
    int data;
    struct queuenode *next;
} Queue_type;
void Enqueue( Queue_type *head, Queue_type *tail , int item)
{
    Queue_type *temp;
    temp->data = item;
    temp->next = NULL;
    if (tail == NULL){//if first node
        head=temp;
        tail=temp;
    }
    else{
        tail->next = temp;
        tail = temp;
    }
}
void main(void)
{
    Queue_type *Head;
    Queue_type *Tail;
    Head = NULL;
    Tail = NULL;
    printf("\n[*]Enter Number to Enqueue : ");
    scanf("%d", &item);
    Enqueue(Head, Tail, item);
}
 
     
     
    