我想在Python中创建一个循环队列,以便当数组中的最后一个元素到达指向头部时。我正在研究排队方法,并且遇到一些问题。我想要一个大小为4的数组,并且我能够将值排入第四个点,但是当它执行elif语句时,我会收到此错误。循环队列Python
类型错误:不支持的操作数类型(一个或多个)为+: '节点' 和 'INT'
任何想法?
class Node(object):
def __init__(self, item = None):
self.item = [None] * 4
self.next = None
self.previous = None
class CircularQueue(object):
def __init__(self):
self.length = 0
self.head = None
self.tail = None
def enqueue(self, x):
newNode = Node(x)
newNode.next = None
if self.head == None:
self.head = newNode
self.tail = newNode
elif self.length < 4:
self.tail.next = newNode
newNode.previous = self.tail
self.tail = newNode
else:
self.tail = (self.tail + 1) % 4
self.length += 1
def dequeue(self):
if self.count == 0:
print ("The Queue is empty!")
self.count -= 1
return self.item.pop()
def size(self):
return self.length
看起来像是一个很好的问题http://codereview.stackexchange.com/ – IceArdor
已经有[deque](https://docs.python.org/2/library/collections.html#collections.deque)在收藏。 – wim
您正在使用'self.count'和'self.length'实例变量。始终如一。 – IceArdor