[問題] PriorityQueue 一問
想請問一下,假設我自訂一個佇列如下:
------------------------------------
PriorityQueue<Node> a = new PriorityQueue<Node>();
Node b = new Node(1, 1.0); // Node(int m,double n)
Node c = new Node(3, 3.0);
a.add(b);
a.add(c);
------------------------------------
我現在想刪除 b,內建的方式是 a.remove(b) 可以刪掉b這個node
但是如果我現在 Node q = new Node(1, 1.0);
a.remove(q)
這麼做卻無法刪掉b這個node。
想請問一下如果我只知道node裡面的內容(1, 1.0)的時候,
有什麼方法可以刪掉 b 這個node?
我知道好像可以用 iterator 去 trace, 但是這樣做的時間是O(N),
不知道有沒有辦法做到O(logN)?
還是其實 PriorityQueue 裡面的 remove 方法就是O(N)呢 @_@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.107.146
→
01/05 23:19, , 1F
01/05 23:19, 1F
→
01/06 00:10, , 2F
01/06 00:10, 2F
→
01/06 00:12, , 3F
01/06 00:12, 3F
→
01/06 00:31, , 4F
01/06 00:31, 4F