編寫乙個類resizingarrayqueueofstrings,使用定長陣列實現佇列的抽象,然後擴充套件實現,使用調整陣列的方法突破大小的限制。
參照堆疊的實現即可。
/*** description :
* author : [email protected]
* date : oct 20, 2016 3:15:52 pm
*/package com.furzoom.lab.algs.ch103;
/** * classname : resizingarrayqueueofstrings
* function : todo add function.
* date : oct 20, 2016 3:15:52 pm
* * @version
*/public class resizingarrayqueueofstrings
public boolean isempty()
public int size()
public void enqueue(string s)
queue[last++] = s;
}public string dequeue()
return queue[first++];
}private void resizing(int n)
queue = tmp;
count = n;
last = last - first;
first = 0;
}public static void main(string args)
}}
輸出:
size(): 1 | count: 1size(): 2 | count: 2
size(): 3 | count: 4
size(): 4 | count: 4
size(): 5 | count: 8
size(): 6 | count: 8
a | size(): 6 | count: 8
b | size(): 5 | count: 8
c | size(): 4 | count: 8
d | size(): 3 | count: 8
e | size(): 2 | count: 8
f | size(): 1 | count: 8
g | size(): 0 | count: 2
演算法-第四版-1.3 揹包、佇列和棧-習題索引彙總
演算法-第四版習題索引彙總
演算法 第四版 練習1 3 40解答
前移編碼。從標準輸入讀取一串字元,使用鍊錶儲存這些字元並清除重複字元。當你讀取了乙個從未見過的字元時,將它插入表頭。當你讀取了乙個重複的字元時,將它從鍊錶中刪去並再次插入表頭。將你的程式命名為movetofront 它實現了著名的前移編碼策略,這種策略假設最近訪問過的元素很可能會再次訪問,因此可以用...
演算法 第四版 練習1 2 10解答
1.編寫乙個類visualcounter,支援加一和減一操作。2.它的建構函式接受兩個引數n和max,其中n指定了 操作的最大次數,max指定了計數器的最大絕對值。3.作為 用影象顯示每次計數器變化後的值。看得懂1和2,看不懂3,1和2的函式好寫,3不知道什麼意思 通過看別人的答案才知道3就是函式 ...
演算法 第四版 練習1 3 30解答
編寫乙個函式,接受一條鍊錶的首結點作為引數,破壞性地 將鍊錶反轉並返回結果鍊錶的首結點。自己寫不出來,參考書上的提示 1.迴圈法 2.遞迴法 遞迴法看不懂,談談迴圈法 使用變數first不斷加1 使用變數second first.next 不斷加1 使用reverse不斷加1.記錄後面那個節點.遍歷...