这是我有史以来第一个提出的问题,因此格式化等可能会有些偏离。请不要恨我:)
因此,我正在做的是创建一个称为PQUEUE的类,而我已经拥有的是:
class qNode:
def __init__(self,data=None, next=None):
self.data = data
self.next = next
def __str__(self):
return str(self.data)
class PQUEUE:
def __init__(self):
self.head = None
self.foot = None
def push(self, value=None, priority=0):
#This is what I want to make
def pop(self):
x = self.front.data
self.front = self.front.next
return x
def clear(self):
self._head = None
self._foot = None
我试图使Priority Queue类(如您所见)不使用heapq / queue类或内置列表方法。
我不知道该怎么做。我尝试过在网上到处搜索,但是我发现人们到处都可以通过导入或使用内置列表方法来进行搜索。
帮助非常感谢!:)
这取决于您对优先级的定义,但是您将不得不自己遍历集合,寻找插入下一个节点的位置:
node = self.head
while node.next and node.next.priority > priority:
node = node.next
if node.next is None:
node.next = qNode(value=value, next=None, priority=priority)
self.foot = node.next
else:
new_node = qNode(value=value, next=node.next, priority=priority)
node.next = new_node
你必须一个添加priority
到你的qNode
,当然,你可能需要调整正是你要去的地方插入,但是这应该让你最那里的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句