???????????
?????????Java ArrayDeque?????????Stack??Queue???????????????????н???PriorityQueue??????????С???????е????????????????????????????????С???Java?????????????С????C++???????????????????????????浽???С?????????С?????п???????????????????natural ordering????????????????????????????Comparator????????C++??o???????
????Java??PriorityQueue?????Queue?????????????null????????????????????????????????????complete binary tree??????С????????????????????????????????????????????????????ζ?????????????????PriorityQueue????????

???????????????????????????????????????????????????????????????????????????????????е???????????????????1????
????leftNo = parentNo*2+1
????rightNo = parentNo*2+2
????parentNo = (nodeNo-1)/2
????????????????????????????????????????????????????±?????????????????????????洢??????
????PriorityQueue??peek()??element????????????add()?? offer()?? ???????remove()???poll()????????臨??????log(N)??
????????????
????add()??offer()
????add(E e)??offer(E e)?????????????????????????в??????????Queue???漲?????????????????????????????????????????????????false??????PriorityQueue???????????????????

????????????????????С???????????????????б?????????
//offer(E e)
public boolean offer(E e) {
if (e == null)//?????????null???
throw new NullPointerException();
modCount++;
int i = size;
if (i >= queue.length)
grow(i + 1);//???????
size = i + 1;
if (i == 0)//??????????????????????????
queue[0] = e;
else
siftUp(i?? e);//????
return true;
}
?????????????У????????grow()??????ArrayList???grow()?????????????????????????飬????????????????????????????????????????siftUp(int k?? E x)???????÷?????????????x????????????
//siftUp()
private void siftUp(int k?? E x) {
while (k > 0) {
int parent = (k - 1) >>> 1;//parentNo = (nodeNo-1)/2
Object e = queue[parent];
if (comparator.compare(x?? (E) e) >= 0)//???????????????
break;
queue[k] = e;
k = parent;
}
queue[k] = x;
}
?????????????x????????С???????????????????е???????????????????k?????λ????????x?????????parent???б????????????????x >= queue[parent]??????????????????????????????????????????????????
????element()??peek()
????element()??peek()?????????????????????????????????????????????С??????????????????????????????????????????????null??????С????????????????????????С???????????????????????????±?????0?±????????????????????????????????0?±???????????ɡ?