Sample run with huck_finn.txt

run.html

Huffman Code

In this programming assignment, you will implement coding and decoding using Huffman codes (Wikipedia entry). All functions except for freq() must be done recursively.

Please use the following template files:

TreeNode.py
Huffman.py
Driver.py
Driver2.py
hob.txt
huck_finn.txt
test_cases.py

A sample run with hard-coded

	frequencies = [['A',8],['C',1],['B',3],['D',1],['E',1],['F',1],['G',1],['H',1]]
is shown below:
mac-mini:p5-huffman raj$ python3 Driver.py
 {'E', 'H', 'C', 'D', 'A', 'B', 'G', 'F'} 17
   {'A'} 8
   {'E', 'H', 'C', 'D', 'B', 'G', 'F'} 9
     {'G', 'F', 'E', 'H'} 4
       {'G', 'H'} 2
         {'G'} 1
         {'H'} 1
       {'E', 'F'} 2
         {'E'} 1
         {'F'} 1
     {'B', 'C', 'D'} 5
       {'C', 'D'} 2
         {'C'} 1
         {'D'} 1
       {'B'} 3
0
111
1100
1101
1010
1011
1000
1001
1110110110001010
BADGE
mac-mini:p5-huffman raj$

A sample run with frequencies generated from hob.txt is shown below:

mac-mini:p5-huffman raj$ python3 Driver.py hob.txt
 {'.', 'Y', 'L', 'S', '\n', 'D', ',', 'V', '‘', '—', 'Q', '?', ')', ' ', 'Ā', 'B', 'M', 'X', ':', 'K', 'G', '-', 'T', '’', 'A', 'C', 'W', 'F', 'H', 'N', 'R', 'I', 'P', 'U', 'J', 'E', 'O', '('} 8090
   {'.', 'Y', 'A', 'C', 'W', ',', 'V', '‘', '?', 'R', ')', 'B', 'M', ':', 'K', 'U', 'G', 'O', 'J', 'E', '’', '('} 3491
     {'.', 'B', 'R', ':', '(', 'K', ',', 'G', 'J', 'E', '?', ')'} 1607
       {'.', 'B', 'R', ':', '(', 'K', ',', 'G', 'J', '?', ')'} 775
         {'.', 'B', ':', '(', 'K', ',', 'G', 'J', '?', ')'} 384
           {'.', ')', ':', 'K', ',', 'J', '?', '('} 184
             {'.', ')', ':', 'K', 'J', '?', '('} 91
               {'.'} 41
               {':', '(', 'K', 'J', '?', ')'} 50
                 {':', '(', 'J', '?', ')'} 24
                   {'J'} 11
                   {')', ':', '?', '('} 13
                     {':', '('} 5
                       {':'} 1
                       {'('} 4
                     {'?', ')'} 8
                       {')'} 4
                       {'?'} 4
                 {'K'} 26
             {','} 93
           {'B', 'G'} 200
             {'B'} 95
             {'G'} 105
         {'R'} 391
       {'E'} 832
     {'Y', 'A', 'M', 'C', 'W', 'U', 'V', '’', '‘', 'O'} 1884
       {'V', 'O', 'M', '‘', 'U', '’'} 913
         {'V', 'M', '‘', 'U', '’'} 445
           {'V', '’', '‘', 'M'} 221
             {'V', '’', '‘'} 109
               {'V'} 51
               {'’', '‘'} 58
                 {'‘'} 28
                 {'’'} 30
             {'M'} 112
           {'U'} 224
         {'O'} 468
       {'W', 'Y', 'A', 'C'} 971
         {'W', 'Y', 'C'} 472
           {'C'} 230
           {'W', 'Y'} 242
             {'Y'} 119
             {'W'} 123
         {'A'} 499
   {'L', 'S', '\n', 'D', 'F', 'H', '—', 'N', 'Q', ' ', 'Ā', 'X', 'I', 'P', '-', 'T'} 4599
     {'L', 'S', 'H', 'N', 'T'} 2154
       {'L', 'S', 'H'} 1061
         {'L', 'H'} 526
           {'L'} 260
           {'H'} 266
         {'S'} 535
       {'N', 'T'} 1093
         {'T'} 540
         {'N'} 553
     {'Ā', 'X', 'I', '\n', 'P', 'D', 'F', '-', '—', 'Q', ' '} 2445
       {'Ā', 'X', 'I', '\n', 'P', 'D', 'F', '-', '—', 'Q'} 1157
         {'I'} 557
         {'Ā', 'X', '\n', 'P', 'D', 'F', '-', '—', 'Q'} 600
           {'Ā', 'X', '\n', '—', 'P', 'Q', '-'} 287
             {'Ā', 'X', '\n', '—', 'Q', '-'} 142
               {'Ā', 'Q', '-', '—'} 66
                 {'Ā', 'Q', '—'} 32
                   {'Q'} 13
                   {'Ā', '—'} 19
                     {'Ā'} 9
                     {'—'} 10
                 {'-'} 34
               {'X', '\n'} 76
                 {'\n'} 36
                 {'X'} 40
             {'P'} 145
           {'F', 'D'} 313
             {'F'} 156
             {'D'} 157
       {' '} 1288
0111
000010
01100
110111
001
110110
000011
10001
0000100111110111000011001
BADGE
mac-mini:p5-huffman raj$