我尝试使用priorityQueue ADT编写程序(文档可在此处找到:http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html)。 priorityQueue命令嵌套类 Node 的实例,它有两个变量:一个表示权重(或优先级)的整数和一个表示要存储在队列中的信息的String。
我面临的问题是更改元素的优先级(即其权重)而不将元素拉出队列(使用函数 remove())然后推送新元素一个具有新优先级(使用函数 add())。我希望能够在队列中更改表示类 Node 实例内的权重的整数,然后priorityQueue将重新排序以查找是否有新的节点放在头部队列。
最后一件事:我不必须使用priorityQueue ADT。如果有任何其他ADT能够以更优雅的方式解决此问题,请随意提及!
我很确定我不是第一个遇到这种困难的人所以我很抱歉,如果本网站上的任何地方已经有了这个问题的答案,但我还没找到。