這裏是我的代碼:在聲明動態數組的收縮功能在堆棧
private void shrink(){
int length = top+1;
if(length<=MINCAPACITY || top<<2 >= length)
return;
length = length + (top<<1);
if(top < MINCAPACITY) length = MINCAPACITY;
int[] newstack = new int[length];
System.arraycopy(stackRep, 0 , newstack, 0 , top+1);
stackRep = newstack;
}
在我的書,據說此操作陣列縮小到一半,如果超過3/4空。任何人都可以請向我解釋這是怎麼發生在這個代碼?我懷疑這個操作是在第一個if語句和長度語句中發生的?
那麼*確切*部分代碼你不明白? –
3,4,5,6行 –