All pastes #631714 Raw Edit

Miscellany

public python v1 · immutable
#631714 ·published 2007-07-24 07:49 UTC
rendered paste body
from make_tree import *f = open('failas.txt')text = f.read()freq = {}for i in text:    p = ord(i)    freq[p] = 0for i in text:    p = ord(i)    k = freq[p]    k = k + 1    freq[p] = kprint freqm = make_tree(freq)code = ''print_tree(m, None, code)output = ''print arrayfor i in text:    t = 0    for k in array:        if i == chr(k):            t = 1    if t == 1:        print 'labas'    else:        print 'error''''    simple huffman tree    gives binary codes    written by kestaz   '''from copy import deepcopyclass tree:    def __init__(self,freq,value):        self.value = value        self.freq = freq        self.right = None        self.left = Nonedef make_simple_tree(m):    l = []    for i in m:        l.append(i.freq)        l.sort()    x = l[0]    del l[0]    y = l[0]    for v,i in enumerate(m):        if x == i.freq:            t = 1            p1 = deepcopy(i)            v1 = v    if t == 1:        t = 0        del m[v1]        for v,i in enumerate(m):            if y == i.freq:                t = 1                p2 = deepcopy(i)                v2 = v        if t == 1:            del m[v2]            f = tree(p1.freq+p2.freq,'*')            f.right = p1            f.left = p2            m.append(f)array = {}def print_tree(d, c, code):    global array    if d != None:        if c != None: code = code + str(c)    if d.left == None and d.right == None:         print str(d.freq) + ' ' + str(d.value)        array[d.freq] = [d.value, code]        print code        code = ''        return    print_tree(d.right,1, code)    print_tree(d.left, 0, code)def tree_print(d):    if d == None: return     print str(d.freq) + ' ' + str(d.value)    tree_print(d.left)    tree_print(d.right)    d = { 5: 1, 7: 2, 10: 3, 15: 4, 20: 5, 45:6}m = []def make_tree(d):    for i in d.keys():        k = d[i]        m.append(tree(i,k))    while len(m)>1:        make_simple_tree(m)    code = ''    return m[0]#make_tree(d)#code = ''#print_tree(m[0], None, code)#print ''#tree_print(m[0])