演算法 第四版 練習1 3 40解答

2021-08-22 13:41:54 字數 434 閱讀 9073

前移編碼。從標準輸入讀取一串字元,使用鍊錶儲存這些字元並清除重複字元。當你讀取了乙個從未見過的字元時,將它插入表頭。當你讀取了乙個重複的字元時,將它從鍊錶中刪去並再次插入表頭。將你的程式命名為movetofront:它實現了著名的前移編碼策略,這種策略假設最近訪問過的元素很可能會再次訪問,因此可以用於快取、資料壓縮等許多場景。

比較簡單,能判斷出有沒有重複字元,以及重複字元的位置即可。

package chap1.$3;

import edu.princeton.cs.algs4.stdin;

public class e40

private int n=0;

private node first;

public void judge(char c)

{node current=first;

for(int i=0;i

演算法 第四版 練習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.記錄後面那個節點.遍歷...

演算法 第四版 練習1 3 31解答

實現乙個巢狀類doublenode用來構造雙向鍊錶,其中每個結點都含有乙個指向前驅元素的引用和乙個指向後續元素的引用 如果不存在則為null 為以下任務實現若干靜態方法 在頭插入結點 在表尾插入結點 從表頭刪除結點 從表尾刪除結點 在指定結點前插入新結點 在指定結點之後插入新結點 刪除指定結點 先編...