คำจำกัดความ
การเข้ารหัส Huffman ให้รหัสแก่อักขระ โดยที่ความยาวของโค้ดจะขึ้นอยู่กับความถี่หรือน้ำหนักที่สัมพันธ์กันของอักขระที่เกี่ยวข้อง รหัส Huffman มีความยาวผันแปรได้ และไม่มีส่วนนำหน้า (หมายความว่าไม่มีรหัสใดเป็นคำนำหน้าของรหัสอื่นๆ) รหัสไบนารีที่ไม่มีคำนำหน้าใดๆ สามารถแสดงหรือแสดงเป็นภาพต้นไม้ไบนารีด้วยอักขระที่เข้ารหัสที่เก็บไว้ที่ใบไม้
Huffman tree หรือ Huffman coding tree กำหนดให้เป็นต้นไม้ไบนารีเต็มรูปแบบ โดยที่แต่ละใบของต้นไม้จะสอดคล้องกับตัวอักษรในตัวอักษรที่กำหนด
ต้นไม้ Huffman ถือเป็นไบนารีทรีที่เกี่ยวข้องกับน้ำหนักเส้นทางภายนอกขั้นต่ำ ซึ่งหมายความว่า ต้นไม้ที่เกี่ยวข้องกับผลรวมขั้นต่ำของความยาวเส้นทางที่ถ่วงน้ำหนักสำหรับชุดใบไม้ที่กำหนด เป้าหมายคือการสร้างต้นไม้ที่มีน้ำหนักเส้นทางภายนอกขั้นต่ำ
ตัวอย่างได้รับด้านล่าง-
ตารางความถี่ตัวอักษร
จดหมาย | z | k | ม | c | u | d | l | จ |
ความถี่ | 2 | 7 | 24 | 32 | 37 | 42 | 42 | 120 |
รหัส Huffman
จดหมาย | ความถี่ | โค้ด | บิต |
---|---|---|---|
จ | 120 | 0 | 1 |
d | 42 | 101 | 3 |
l | 42 | 110 | 3 |
คุณ | 37 | 100 | 3 |
c | 32 | 1110 | 4 |
ม | 24 | 11111 | 5 |
k | 7 | 111101 | 6 |
z | 2 | 111100 | 6 |
ต้น Huffman (สำหรับตัวอย่างด้านบน) แสดงไว้ด้านล่าง -