【发布时间】:2016-09-20 05:53:55
【问题描述】:
我需要将 Jedi 对象添加到队列中。我知道的所有添加方法都没有工作,并且都给出“找不到符号 - 方法 add(jedi1)。我在上一堂课中对队列了解不多,所以我不确定我在做什么。其他需要注意的是 3 个细节。
1) 修改堆操作以在根中保留最大(而不是最小)元素。有关算法,请参阅堆实验室作业。
2) 使用具有可变大小限制的数组(如果
3) 使用可比较的方法实现堆以接收任何通用对象。
4) 允许重复值,规则如下:如果输入重复值,则应认为具有相似值的新元素的优先级低于现有元素。
public class PriorityQueue<JediQ>
{
Scanner reader = new Scanner(System.in);
public void main(String[] args)
{
while (true)
{
System.out.println("Please select an option");
System.out.println("1 - Add a Jedi ");
System.out.println("2 - Remove an element");
System.out.println("3 - Print head value");
System.out.println("4 - Compare value to head value");
System.out.println("5 - Print Array");
System.out.println("6 - Exit");
int x = 0;
x = reader.nextInt();
if (x == 1)
{
PriorityQueue<JediQ> line = new PriorityQueue<JediQ>();
System.out.println("Enter the name of the Jedi");
String Name = reader.next();
System.out.println("Enter the midi count");
double midi = reader.nextInt();
Jedi jedi1 = new Jedi(Name, midi);
line.add(jedi1);
System.out.print("Jedi was added");
}
if (x == 6)
{
System.exit(0);
}
}
}
}
【问题讨论】:
-
你连方法都没有……
-
您实际上还没有编写 PriorityQueue 实现,这是您应该为您的任务做的。您所拥有的只是一个使用优先级队列的
main方法,并且您在使用泛型时遇到了问题。我们不会为你编写代码,如果你迷路了,你需要和你的教授谈谈。
标签: java queue priority-queue