Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cây Huffman trong Cấu trúc dữ liệu (Huffman Trees)


Định nghĩa

Mã hóa Huffman gán mã cho ký tự sao cho độ dài mã phụ thuộc vào tần suất tương đối (trọng số) của ký tự. Mã Huffman có độ dài biến đổi, không có tiền tố (không mã nào là tiền tố của mã khác). Bất kỳ mã nhị phân không tiền tố nào có thể hiển thị dưới dạng cây nhị phân với ký tự mã hóa lưu ở lá.

Cây Huffman (Huffman coding tree) định nghĩa là cây nhị phân đầy đủ (full binary tree) mà mỗi lá tương ứng với một chữ cái trong bảng chữ cái cho trước.

Cây Huffman được xem như cây nhị phân liên quan đến trọng số đường đi ngoài nhỏ nhất, tức là tổng độ dài đường đi có trọng số nhỏ nhất cho tập lá cho trước. Mục tiêu: xây dựng cây với trọng số đường đi ngoài nhỏ nhất.

Ví dụ:

Bảng tần suất chữ cái

Chữ cáizkmcudle
Tần suất272432374242120

Mã Huffman

Chữ cáiTần suấtMãSố bit
e12001
d421013
l421103
u371003
c3211104
m24111115
k71111016
z21111006

Cây Huffman (cho ví dụ trên):

Cây Huffman trong Cấu trúc dữ liệu (Huffman Trees)