ハフマン符号は、1952年にデビッド・ハフマンによって提案されたアルゴリズムで、可変長符号化(文字によってビット数が異なる符号化方式)の代表例です。具体的な符号の割り当ては、「ハフマン木」と呼ばれる木構造(二分木)を下から上へと構築することで決定されます。出現確率の低い記号から順にペアを作って合流させていき、最終的に1つの根にたどり着くように木を作ります。その後、根から葉(各記号)に向かって枝をたどる際に、左に進むなら「0」、右に進むなら「1」というようにビットを割り振ることで、自動的に出現確率が高い記号には短いビット列が、低い記号には長いビット列が割り当てられる仕組みになっています。この手法により、情報理論における限界に近い非常に効率的な圧縮が可能になります。
試験では、ハフマン木を自力でたどって特定の文字の符号を求めさせる問題や、ハフマン符号を使った圧縮後の全体のビット数を計算させる問題が頻出します。「出現頻度が高いデータに短い符号、低いデータに長い符号を割り当てる」という基本原理を問う選択問題もよく出題されます。また、同じくデータ圧縮の手法である「ランレングス符号化(連続する同じデータを『データ+連続回数』に置き換える方法)」との違いを比較させる問題も狙われやすいため、それぞれの圧縮方式がどのような性質のデータ(文字の偏りが大きいのか、同じ文字が連続しやすいのか)に適しているかを理解しておくことが重要です。
情報の圧縮効率を高めるエントロピー符号化、ハフマン符号の対比としてよく挙げられるランレングス圧縮、ハフマン符号を決定するために使われるデータ構造である二分木などが関連します。