具有节点的Python中的优先级队列

时间:2014-04-08 16:54:51

标签: python

这次我需要做一个"手工制作"优先级队列(我必须使用类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 

如果你能帮我解决任何错误或其他什么,我会非常感激!

0 个答案:

没有答案