Both 1st and 2nd statements are Correct only if we are using Simple List for queue implementation.
But only 1st statement is Correct if we are using Circular List for queue implementation.
In Simple list, if only FRONT is available we can perform delete operation in O(1) time and insert operation (using an extra pointer temp) in O(n) time.
In Simple list, if only REAR is available we can only perform insertion operation in O(1) time but no delete operation.
Its because, in simple list, Front/Rear pointer only moves in forward direction. Never backward.
BUT In Circular list, If only FRONT is available again we can perform delete operation in O(1) time and insert operation (using an extra pointer temp) in O(n) time.
While If only REAR is available then both Insertion and deletion can be performed in O(1) time in Circular list.
Example : While using REAR in Circular list.
Insertion :
newNode --> next = rear --> next;
rear --> next = newNode;
rear = newNode;
Deletion :
temp = rear --> next;
rear --> next = temp --> next;
free(temp);