The enqueue operation

Elements are added to a Queue object via the enqueue method. The elements or data are added through nodes. The enqueue method code is very similar to the append operation of the doubly linked list which we discussed in Chapter 4, Lists and Pointer Structures.

The enqueue operation creates a node from the data passed to it and appends it to the tail of the queue, and points both self.head and self.tail to the newly created node if the queue is empty. The total count of elements in the queue is increased by the line self.count += 1. If the queue is not empty, the new node's previous variable is set to the tail of the list, and the tail's next pointer (or variable) is set to the new node. Lastly, we update the tail pointer to point to the new node. This is shown in the following code:

    def enqueue(self, data): 
new_node = Node(data, None, None)
if self.head is None:
self.head = new_node
self.tail = self.head
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node

self.count += 1
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset