Öncelikle Frekans neymiş bunu öğrenelim:
Frekans veya titreşim sayısı bir olayın birim zaman (genel olarak 1 saniye) içinde hangi sıklıkla, kaç defa tekrarlandığının ölçümüdür, matematiksel ifadeyle periyodun çarpmaya göre tersidir.Yani bir işin frekansı ne kadar yüksekse o iş birim zamanda o kadar fazla yapılıyor demektir.
Şimdi konumuz Huffman ağacı frekansla ne ilgimiz var diyebilirsiniz şöyle açıklıyım:
Huffman ağacı oluşturulurken kullanılan kelimelerdeki harf sıklığına göre harflere frekans atanır.En yüksek frekansın en düşük puan almasına göre sıralanır.Sıralanan harfler kullanım puanına göre bir öncelik kuyruğunda tutulur.Şekildeki gibi işlemler yapılarak ağaç yapılandırılır.(Resimlere tıklayıp açabilirsiniz.)
Öncelik kuyruğunda sadece 1 eleman kaldığında her elemanın sağ ve sol çocukları çizilerek aşağıdaki Huffman Kodlama ağacına ulaşılabilir.

Pseudo verilen öncelik kuyruğundan ağaç çıkarma :
function root huffman(oncelikKuyrugu){
while(oncelikKuyrugu.elemanSayisi>1)//tek eleman kalıncaya kadar döner.
{
eleman1=oncelikKuyrugu.elemanAl(0)//değerdeki elemanın özelliklerini döner.
eleman2=oncelikKuyrugu.elemanAl(1)//değerdeki elemanın özelliklerini döner.
yeniEleman= new Node() //boş eleman atanır
yeniEleman.leftChild=eleman1
yeniEleman.rightChild=eleman2
yeniEleman.letter=eleman1.letter+eleman2.letter
yeniEleman.frekans=eleman1.frekans+eleman2.frekans
oncelikKuyrugu.elemanSil()//baştaki elemanı siler.
oncelikKuyrugu.elemanSil()//baştaki elemanı siler.
oncelikKuyrugu.elemanEkle(yeniEleman)//frekansa göre öncelik kuyruğundaki yerine ekler.
}//while 'ın sonu
return oncelikKuyrugu.elemanAl(0)//kalan tek elemanı geriye döndürür.
}

