import heapq
total=[]
i=0
def Tree(symbolTupleList):
trees = list(symbolTupleList)
heapq.heapify(trees)
while len(trees) > 1:
childR, childL = heapq.heappop(trees), heapq.heappop(trees)
parent = (childL[0] + childR[0], childL, childR)
heapq.heappush(trees, parent)
print trees[0]
return trees[0]
def printHuffTree(huffTree, prefix = ''):
if len(huffTree) == 2:
print huffTree[1], prefix, #prefix itu adlah angka Encoder dari Huffman Code dan Hufftree adalah huruf yang diencode
f = open(r'D:\encoding.txt', 'a')
f.writelines(prefix)
f.close()
else:
printHuffTree(huffTree[1], prefix + '0')
printHuffTree(huffTree[2], prefix + '1')
def decode(a):
print 'a'
f = open('filename.txt', 'r')
char =''
huruf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
kalimat = huruf
jumlah = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
jumlahner = jumlah
j=0
for i in range(1):
char = f.read();
# print f.readline()
print char
a= len(char)
print a
c= list(char)
print c
f.close()
exampleData = [[0 for col in range(a)] for row in range(a)]
sample = []
while j <26: jumlah[j]=c.count(huruf[j]) if jumlah[j]>0:
exampleData[j][j]= ( float (jumlah[j]) /a , huruf[j] )
sample.append(exampleData[j][j])
j+=1
if __name__ == '__main__':
huffTree = Tree(sample)
print printHuffTree(huffTree)
decode('a')
#print sample
![]()
