哈夫曼編碼(算法)


給個最簡單的例子,若給定數組[1,2,3,4,5],如何獲得哈夫曼樹?

 

根據哈夫曼的編碼方法(假設大家都會),可以得到哈夫曼樹如上所示 

可以給出偽代碼如下:

Change_Array_To_Huffman(A[n]) {
    BinaryTree *T[n];
    BinaryTree *B;

    for(i : from 1 to n) {
        T[i]->data = A[i];
        T[i]->left = Null;
        T[i]->right = Null;
    }
    
    for(i : from 1 to n) {
        select k1 & k2 as non-empty minimum-data index;
        B->data = T[k1]->data + T[k2]->data;
        B->left = T[k1];
        B->right = T[k2];
        T[k1] = B;
        T[k2] = Null;
    }
    
    return B;
}

偽代碼可自行進行擴展,以上!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM