The enqueue operation adds a new element to the end of a queue. First, a new node is created with the given value. If the queue is empty, both head and tail pointers are set to this new node. If not empty, the current tail's next pointer is set to the new node, and then the tail pointer is updated to the new node. This ensures the queue maintains correct order and pointers. The execution table shows step-by-step how nodes are added and pointers updated, with the visual state of the queue after each step. Key moments clarify why checking for empty queue and updating pointers in order is important. The variable tracker shows how head, tail, and size change as nodes are enqueued.