In: Computer Science
Consider the following structure definitions and fill in the blanks for the enqueue function:
typedef struct queue queue_t; typedef struct node node_t;
    struct node {
        node_t *next;
         void *val; };    struct queue {
        node_t *head;
        node_t *tail;};/* add val at the tail of the queue q */
void enqueue (queue_t *q, void *val) {
    if (q->head == NULL) {_______________ = _______________ = malloc(sizeof(_______________));
        _______________ = NULL;
    } else {_______________ = _______________ = malloc(sizeof(_______________));
_______________ = NULL; }
q->tail->val = val; }
typedef struct queue queue_t;
    typedef struct node node_t;
    struct node {
        node_t *next;
         void *val; };
    struct queue {
        node_t *head;
        node_t *tail;};
/* add val at the tail of the queue q */
void enqueue (queue_t *q, void *val) {
    if (q->head == NULL) {
q->head = q->tail = malloc(sizeof(struct node));
        q->head->next = NULL;
    } else {
q->tail = q->tail->next = malloc(sizeof(struct node));
        q->tail->next = NULL;
    }
q->tail->val = val; }