What do I do to fix enqueue so it prints 4 3 2 1 not 1 2 3 4
Python This is what I have
class linkedQueue:
class _Node:
def __init__(self, value, next = None):
self._data = value
self._next = next
def get_data(self):
return self._data
def set_data(self, value):
self._data = value
def get_next(self):
return self._next
def set_next(self, nodetopoint = None):
self._next = nodetopoint
def __init__(self):
self._head = None
self._tail = None
self._size = 0
def enqueue(self, itemValue):
# Inserts a new item (the data of the item is set to itemValue) at the end of the queue and returns True. If unable to insert the item (due to error) return false.
node = self._Node(itemValue)
if self._head is None:
self._head = node
else:
self._tail._next = node
self._tail = node
self._size += 1
return True
def dequeue(self):
# Removes the item from the front of the queue and returns it. For unsuccessful dequeue (due to error or when the queue is empty) return False
if self.isEmpty():
return False
else:
node = self._head
self._head = node.get_next()
self._size -= 1
return node.get_data()
def peek(self):
# Returns the item at the front of the queue without removing it from the queue. If queue is empty return false.
if self.isEmpty():
return False
else:
return self._head.get_data()
def isEmpty(self):
# Returns true when queue is empty else returns false
return self._size == 0
def getSize(self):
# Returns the size of the queue and for empty queue returns 0
return self._size
def _flipqueue(self):
# flips the direction of the links in the queue. So after this the item at the tail will become head and the item at the tail will become head
# Sample: Given the queue: head-> p -> o -> t -> None then after using this method the queue will become head -> t -> o -> p -> None
current = self._head
prev = None
while current is not None:
next = current.get_next()
current.set_next(prev)
prev = current
current = next
self._head = prev
def printQueue(self):
# Prints the items in the queue where the item in the left is the latest and item at the right is the oldest item. Use ' ' (white space) to seperate the items. If queue is empty print empty.
# Example: After enqueueing
# Q.enqueue(1)
# Q.enqueue(2)
# Q.enqueue(3)
# Q.enqueue(4)
# Q.printQueue()
# prints 4 3 2 1
if self.isEmpty():
print("empty")
else:
current = self._head
items = []
while current is not None:
items.append(str(current.get_data()))
current = current.get_next()
print(" ".join(items))
Q = linkedQueue()
Q.enqueue(1)
Q.enqueue(2)
Q.enqueue(3)
Q.enqueue(4)
Q.printQueue()
What do I do to fix enqueue so it prints 4 3 2 1 not 1 2 3 4
Step by step
Solved in 3 steps with 8 images