Option 3 is correct.
In push_back function, in this linked list representation of queue the condition is for the case when the Queue is empty originally, the else part considers the case when there are nodes so to add a node at the rear, we first add new node next to rear and also make the rear point to the new node
So, S1:rear->next=temp;
and S2:rear=temp;
In pop fu_front function, it is the case when the Queue is empty originally, the else part considers the case when there are nodes so to pop i.e. the underflow condition,
so, if condition is S3:front==NULL
else simply make the front pointer point to the second (next) node and then delete the first node.
this is done by S4: front=front->next