private static void GenerateCodes(HuffmanTreeNode node, uint code, uint depth) { if (node.IsLeaf()) { node.NumBits = depth; node.Code = code; } else { var leftCode = code & ~(1U << (int)depth); GenerateCodes(node.Left, leftCode, depth + 1); var rightCode = code | (1U << (int)depth); GenerateCodes(node.Right, rightCode, depth + 1); } }
public static bool IsLeaf(HuffmanTreeNode node) { return(node.IsLeaf()); }