我正在尝试实现优先级队列。 我有一个插入一个具有特定优先级的元素,即pinsert(元素,优先级,PriorityQueue)。 当我执行:
PriorityQueue test=init();
pinsert(1,1,test);
添加元素并增加队列的大小(我有一个检查大小的方法) 在调用方法文本以打印元素之后出现问题:
public static void text(PriorityQueue q){
PriorityQueue p =q;
while(length(p)>0){
System.out.print(pfront(p)+" | ");
premove(p);
}
System.out.println();
}
现在,当我键入以下内容时:
PriorityQueue test=init();
pinsert(1,1,test);
System.out.println("size before text() :" + test.size)
text(test);
System.out.println("size after text() :" + test.size)
我明白了:
size before text() :1
1 |
size after text() : 0
为什么后面的尺寸为0?我想它与参考
有关PriorityQueue p =q;