C Write a function void headEnqueueQueue q int key which enq
C++
Write a function void headEnqueue(Queue *q, int key) which enqueues the key such that, at function exit, it is positioned at the head of the queue rather than the tail; and the order and integrity of the queue is otherwise maintained.
Solution
struct node
 {
 int data;
 node* next;
 };
class Queue //linked_list class
 {
 private:
 node* front;
 node* rear;
 
 public:
 Queue();
 void insert(int);
 headEnqueue(Queue *q, int key);
 };
 Queue::Queue()
 {
 front = rear = NULL;
 }
void Queue::insert(int val)
 {
 node* temp = new node;
 temp->data = val;
 temp->next = NULL;
 
 if (front == NULL)
 front= rear = temp;
 else {
 node* temp1 = front;
 while (temp1->next)
 temp1 = temp1->next;
temp1->next = temp;
 }
 }
void Queue::headEnqueue(Queue *q, int key)
 {
    node* temp = new node;
    temp->data = key;
    temp->next=q->front;
    q->front=temp;
}

