Python Q front, rear value doesn't come out

Asked 2 years ago, Updated 2 years ago, 33 views

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

2022-09-22 19:16

1 Answers

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.


2022-09-22 19:16

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.