unsigned short c_table[4095+1];
¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢12 ¥Ó¥Ã¥È(2^12=4096)¤ÎHuffmanÉ乿¤Ë¤Ä¤¤¤ÆÉ½°ú¤¤¬²Äǽ¤È¤Ê¤Ã
-¤Æ¤¤¤ë¡£¤½¤·¤Æ¡¢Ê£¹ç¸ì¤Ï¡¢0...NC ¤ÎÈϰϤǤ¢¤ë¤«¤é¡¢
+¤Æ¤¤¤ë¡£¤½¤·¤Æ¡¢Éü¹æ¸ì¤Ï¡¢0...NC ¤ÎÈϰϤǤ¢¤ë¤«¤é¡¢
c_table[¥Ó¥Ã¥ÈÎó] < NC
¤Î¾ì¹ç¤Ï¡¢¤½¤Î¤Þ¤Þɽ°ú¤¤Ç
c_table[¥Ó¥Ã¥ÈÎó] >= NC
¤Î¾ì¹ç¤Ï¡¢ÌڤΥ롼¥È¥Î¡¼¥É¤ò¼¨¤·¡¢¤½¤ÎÃͤ«¤éÌÚ¤òé¤Ã¤ÆÉü¹æ¤Ç¤¤ë¤è¤¦¤Ë
¤Ê¤Ã¤Æ¤¤¤ë¡£¿Þ¼¨¤¹¤ë¤È
- /\
- a /\ ... ³¬ÁØ:1
- b ... ³¬ÁØ:2
- :
- /\
- x x ... ³¬ÁØ:12
+----------------------------------------------------------------------------
+ .
+ / \
+ a . ... ³¬ÁØ:1 `.
+ / \ |
+ b ... ³¬ÁØ:2 `> ɽ°ú¤
+ : '
+ : |
+ . ... ³¬ÁØ:11 |
+ / \ |
+ x x ... ³¬ÁØ:12 .' <- ɽ°ú¤¤Î·ë²Ì x ¤¬(>=NC)¤Î¾ì¹ç¡¢
+ / \ Ìڤ㤤¬¤¢¤ë¤³¤È¤ò¼¨¤¹
+ . . ... ³¬ÁØ:13 `.
+ |
+ : > left[]/right[]¤Çɽ¸½ (³¬ÁØ12¤¬root)
+ ... ³¬ÁØ:16 .'
+
+ ³¬ÁØ 1 ¡Á 11 (1¡Á11bit)¤ÎHuffmanÌڤˤĤ¤¤Æ¤Ï¡¢É½°ú¤¤ÇÉü¹æ
+ ³¬ÁØ 12 ¤¬ < NC ¤Î¾ì¹ç¤Ï¡¢¤½¤Î¤Þ¤Þɽ°ú¤¤ÇÉü¹æ
+ ³¬ÁØ 12 ¤¬ >= NC ¤Î¾ì¹ç¤Ï¡¢Àá¤ò¼¨¤·¡¢left[³¬ÁØ12¤ÎÃÍ],right[³¬ÁØ12¤ÎÃÍ]¤¬
+ ¤½¤Î²¼¤ÎÀá¤ò»Ø¤¹¡£
+----------------------------------------------------------------------------
+
+³¬ÁØ12¤è¤ê²¼(13 °Ê¾å¤Î bit ¿ô¤Î Huffman É乿)¤Î Huffman ÌڤˤĤ¤¤Æ
+left[], right[] ¤Çɽ¤·¤Æ¤¤¤ë¤è¤¦¤À¡£¤³¤ÎÌڤΥΡ¼¥É¤ÎÃÍ¤Ï NC °Ê¾å¤Î¿ôÃÍ
+¤òÏ¢ÈÖ¤«²¿¤«¤Ç³ä¤êÅö¤Æ¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡©¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¤³¤ì°Ê¹ß
+¤Ç³Îǧ¤¹¤ë¡£
-¤³¤ì¤è¤ê¡¢²¼¤Î³¬ÁؤΠHuffman ÌڤˤĤ¤¤Æ left[], right[] ¤Çɽ¤·¤Æ¤¤¤ë¤è
-¤¦¤À¡£¤Ê¤ª¡¢³¬Áؤ¬¿¼¤¤ Huffman ÌڤȤϡ¢bit Ť¬Ä¹¤¤É乿¤Ç¤¢¤ê¡¢bit Ť¬
-Ť¤¤È¤¤¤¦¤³¤È¤Ï½Ð¸½ÉÑÅÙ¤¬Ä㤤¤Ï¤º¤Ç¤¢¤ë¤«¤é¡¢left[], right[] ¤ÇÌÚ¤òé
-¤ë²ó¿ô¤Ï¾¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£¤³¤ì¤ÏÍý¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë¡£
+¤Ê¤ª¡¢³¬Áؤ¬¿¼¤¤ Huffman ÌڤȤϡ¢bit Ť¬Ä¹¤¤É乿¤Ç¤¢¤ê¡¢bit Ť¬Ä¹¤¤¤È
+¤¤¤¦¤³¤È¤Ï½Ð¸½ÉÑÅÙ¤¬Ä㤤¤Ï¤º¤Ç¤¢¤ë¤«¤é¡¢left[], right[] ¤ÇÌÚ¤òé¤ë²ó¿ô
+¤Ï¾¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£¤³¤ì¤ÏÍý¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë¡£
¤Á¤ç¤Ã¤Èµ¤Ê¬Åª¤Ë¥Î¤é¤Ê¤¤¤Î¤Ç¤Ï¤·¤ç¤ë¤¬¡¢¸å¤Î (E), (F) ¤ÏÌÚ¤òƱ»þ¤Ëºî¤Ã
¤Æ¤¤¤ë¤³¤È¤ò½ü¤±¤Ð¡¢maketree.c:make_code() ¤Î¸åȾÉôʬ¤ÈƱ¤¸¤À¤È¹Í¤¨¤Æ