这次我需要做一个"手工制作"优先级队列(我必须使用类Node)。
我定义了 init 和一个名为" isEmpty"的方法。返回一个布尔值。 我在做add方法时遇到了一些麻烦,我称之为enqueue。
优先级基于具有节点的数据。每个节点都有一个数字,我必须在将它们保存在队列中时对它们进行排序。
def enqueue(self,node):
if self.isEmpty():
self.__head = node
node.setNext(None)
else:
nNode = node.getNum()
first = self.__head #I call first the tmp.
num = first.getNum()
while num > nNode:
element = first.getNext()
if element == None:
element = first
nNode = 0
else:
nNode = element.getNum()
if element == first:
node.setNext(element)
self.__head = node
else:
neXt = element.getNext()
if neXt == None:
element.setNext(node)
node.setNext(None)
else:
element.setNext(node)
node.setNext(neXt)
first = self.__head
node.setNext(first)
self.__head = node
如果你能帮我解决任何错误或其他什么,我会非常感激!