Part I: Output the characters with their frequency f()=4; f()=2; f(#)=1; f(&)=2; f(')=2; f(()=2; f())=1; f(*)=2; f(,)=1; f(-)=6; f(.)=1; f(/)=1; f(0)=5; f(1)=1; f(2)=1; f(3)=13; f(4)=14; f(5)=14; f(6)=2; f(7)=4; f(8)=10; f(9)=10; f(;)=2; f(=)=2; f([)=2; f(])=5; f(^)=1; f(a)=9; f(c)=3; f(d)=8; f(e)=6; f(f)=11; f(g)=5; f(h)=1; f(i)=4; f(j)=7; f(k)=10; f(l)=5; f(m)=3; f(o)=6; f(p)=2; f(q)=5; f(r)=8; f(s)=8; f(t)=6; f(u)=5; f(v)=3; f(w)=8; f(x)=2; f(z)=2; Part II: Huffman tree is done. Part III: The old char can be represented by new code. Characters--- New represent 0 --- 00000 ] --- 00001 f --- 0001 o --- 00100 - --- 00101 e --- 00110 t --- 00111 h --- 0100000 1 --- 01000010 2 --- 01000011 v --- 010001 m --- 010010 * --- 0100110 6 --- 0100111 3 --- 0101 4 --- 0110 5 --- 0111 j --- 10000 r --- 10001 i --- 100100 x --- 1001010 z --- 1001011 ( --- 1001100 [ --- 1001101 = --- 1001110 ' --- 1001111 s --- 10100 w --- 10101 d --- 10110 , --- 10111000 . --- 10111001 p --- 1011101 ; --- 1011110 / --- 10111110 ^ --- 10111111 --- 1100000 # --- 11000010 ) --- 11000011 7 --- 110001 --- 110010 u --- 110011 a --- 11010 8 --- 11011 9 --- 11100 k --- 11101 & --- 1111000 c --- 1111001 g --- 111101 q --- 111110 l --- 111111 Compression factor: 1.51592