คำจำกัดความ
การเข้ารหัส 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 (สำหรับตัวอย่างด้านบน) แสดงไว้ด้านล่าง -
