class MyQueue : def init(self, max_size): self.max_size = max_size self.front = -1 self.rear = 0 self.myList = []
def enqueue(self, item):
if self.isFull():
return None
else :
self.myList.append(item)
self.rear = self.rear + 1
def dequeue(self):
if self.isEmpty():
return None
else:
self.rear = self.rear - 1
return self.myList.pop(0)
def isEmpty(self):
if (self.rear > 0):
return False
else:
return True
def isFull(self):
if (self.max_size <= self.rear):
return True
else:
return False
def front(self):
if self.isEmpty():
return None
else:
return self.myList[self.front]
def rear(self):
if self.isEmpty():
return None
else:
return self.myList[self.rear]
q = MyQueue(5) print(q.max_size) print(q.isEmpty()) q.enqueue(100) q.enqueue(200) q.enqueue(300) q.enqueue(400) q.enqueue(500) print(q.front()) #Error part print(q.ear()) #ErrorPart print(q.isFull()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())
If I do this, only the front and rear errors come out. How do I get the first and last values?
python python3
You defined front and rear as functions and variables once.
If you look at __init__
, self.It says front = -1
.
Below, def front(self):
is written as a variable.
So the author tries to write the front as a function, but Python thinks the front as an int and gets an error.
Replacing variables and functions with different names will solve the problem.
© 2024 OneMinuteCode. All rights reserved.