示例#1
0
 def get_encodeStr(self):
     if not self.chars_freqs:
         self.chars_freqs = Huffman.cal_count_freq(self.get_content())
     if not self.Huffman_codes:
         self.Huffman_codes = Huffman.cal_Huffman_codes(self.chars_freqs)
     huffmanStr = ''
     for char in self.get_content():
         i = 0
         for item in self.chars_freqs:
             if char == item[0]:
                 huffmanStr += self.Huffman_codes[i]
             i += 1
     return huffmanStr
示例#2
0
 def get_huffman_codes(self):
     codes = []
     words = []
     if not self.chars_freqs:
         self.chars_freqs = Huffman.cal_count_freq(self.get_content())
     if not self.Huffman_codes:
         self.Huffman_codes = Huffman.cal_Huffman_codes(self.chars_freqs)
     for char in self.get_content():
         i = 0
         for item in self.chars_freqs:
             if char == item[0] and char not in words:
                 codes.append((char, self.Huffman_codes[i]))
                 words.append(char)
             i += 1
     return codes
示例#3
0
 def get_decodeStr(self, huffmanStr):
     if not self.chars_freqs:
         self.chars_freqs = Huffman.cal_count_freq(self.get_content())
     if not self.Huffman_codes:
         self.Huffman_codes = Huffman.cal_Huffman_codes(self.chars_freqs)
     orignStr = ''
     while huffmanStr != '':
         i = 0
         for item in self.Huffman_codes:
             if item in huffmanStr:
                 if huffmanStr.index(item) == 0:
                     orignStr += self.chars_freqs[i][0]
                     huffmanStr = huffmanStr[len(item):]
             i += 1
     return orignStr