【发布时间】:2013-11-02 17:39:40
【问题描述】:
我在使用以下参数创建插入函数时遇到问题。插入函数应该接受一个优先级队列和一个元素并使用优先级规则插入它 -
优先级队列将接受一系列任务并对它们进行排序 基于它们的重要性。每个任务都有一个从 10(最高优先级)到 1 的整数优先级 (最低优先级)。如果两个任务的优先级相同,则顺序应以先后顺序为准 它们被插入到优先级队列中(较早的第一个)。
所以,到目前为止,我已经创建了以下代码来初始化一些需要的东西......
class Tasks():
__slots__ = ('name', 'priority')
def __init__(bval):
bval.name = myName
bval.priority = myPriority
return bval
class PriorityQueue():
__slots__ = ('queue', 'element')
def __init__(aval):
aval.queue = queue
aval.element = element
return aval
我正在尝试编写的代码是 insert(element, queue): 它应该使用优先级队列插入元素。类似地,myPriorty 是一个从 1 到 10 的整数。
同样,我可以执行以下操作以确保创建从 1 到 10 的优先级...
def __init__(bval , myPriority = 10):
bval.priority = myPriority
bval.pq = [[] for priority in range(bval.myPriority)]
这样我就可以用 bval.pq 替换插入任务中的 myPriority
【问题讨论】:
-
风格说明:aval 和 bval 应该只是“self”。您在构造函数中分配的变量来自哪里也不清楚。
-
我用 self 替换了它们。 @TylerCrompton 我一直在研究堆实现,因为我现在可以使用实际的 priority.queue() 调用。
-
使用
aval和bval让我很困惑,为什么我第一次看到它。谢谢。
标签: python priority-queue